OpenPLC1
Hello,
I want to try Open PLC Editor but I have installation warnings.
Can you help me?
cordially
Below the installation warnings :
[INSTALLING DEPENDENCIES]
[sudo] Mot de passe de med : 
Collecting future
Collecting zeroconf==0.19.1
  Using cached

Your post has been detected as spam. Try removing any links that are in your post.


[COMPILING MATIEC]
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
/home/med/OpenPLCEdit/OpenPLC_Editor/matiec/config/missing: Unknown `--is-lightweight' option
Try `/home/med/OpenPLCEdit/OpenPLC_Editor/matiec/config/missing --help' for more information
configure: WARNING: 'missing' script is too old or missing
checking for a thread-safe mkdir -p... /bin/mkdir -p
checking for gawk... no
checking for mawk... mawk
checking whether make sets $(MAKE)... yes
checking whether make supports nested variables... yes
checking for bison... bison -y
checking for style of include used by make... GNU
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables... 
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking whether gcc understands -c and -o together... yes
checking dependency style of gcc... gcc3
checking for flex... flex
checking lex output file root... lex.yy
checking lex library... -lfl
checking whether yytext is a pointer... yes
checking for g++... g++
checking whether we are using the GNU C++ compiler... yes
checking whether g++ accepts -g... yes
checking dependency style of g++... gcc3
checking whether ln -s works... yes
checking whether make sets $(MAKE)... (cached) yes
checking for ranlib... ranlib
checking for gawk... (cached) mawk
checking how to run the C preprocessor... gcc -E
checking for grep that handles long lines and -e... /bin/grep
checking for egrep... /bin/grep -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking float.h usability... yes
checking float.h presence... yes
checking for float.h... yes
checking limits.h usability... yes
checking limits.h presence... yes
checking for limits.h... yes
checking for stdint.h... (cached) yes
checking for stdlib.h... (cached) yes
checking for string.h... (cached) yes
checking for strings.h... (cached) yes
checking sys/timeb.h usability... yes
checking sys/timeb.h presence... yes
checking for sys/timeb.h... yes
checking for unistd.h... (cached) yes
checking for stdbool.h that conforms to C99... yes
checking for _Bool... yes
checking for inline... inline
checking for int16_t... yes
checking for int32_t... yes
checking for int64_t... yes
checking for int8_t... yes
checking for uint16_t... yes
checking for uint32_t... yes
checking for uint64_t... yes
checking for uint8_t... yes
checking for stdlib.h... (cached) yes
checking for GNU libc compatible malloc... yes
checking whether time.h and sys/time.h may both be included... yes
checking for sys/time.h... yes
checking for unistd.h... (cached) yes
checking for alarm... yes
checking for working mktime... yes
checking for stdlib.h... (cached) yes
checking for GNU libc compatible realloc... yes
checking for clock_gettime... yes
checking for memset... yes
checking for pow... no
checking for strcasecmp... yes
checking for strdup... yes
checking for strtoul... yes
checking for strtoull... yes
checking that generated files are newer than configure... done
configure: creating ./config.status
config.status: creating Makefile
config.status: creating absyntax/Makefile
config.status: creating absyntax_utils/Makefile
config.status: creating stage1_2/Makefile
config.status: creating stage3/Makefile
config.status: creating stage4/Makefile
config.status: creating stage4/generate_c/Makefile
config.status: creating stage4/generate_iec/Makefile
config.status: creating config/config.h
config.status: config/config.h is unchanged
config.status: executing depfiles commands
Making all in absyntax
ar: le modificateur « u » est ignoré puisque « D » est le défaut (consultez « U »)
Making all in absyntax_utils
debug_ast.cc:59:63: warning: invalid suffix on literal; C++11 requires a space between literal and string macro [-Wliteral-suffix]
   if      (const_value. _int64.is_valid   ()) fprintf(stderr, "%"PRId64"", const_value. _int64.get());
                                                               ^
debug_ast.cc:64:63: warning: invalid suffix on literal; C++11 requires a space between literal and string macro [-Wliteral-suffix]
   if      (const_value._uint64.is_valid   ()) fprintf(stderr, "%"PRIu64"", const_value._uint64.get());
                                                               ^
ar: le modificateur « u » est ignoré puisque « D » est le défaut (consultez « U »)
Making all in stage1_2
updating iec_bison.hh
ar: le modificateur « u » est ignoré puisque « D » est le défaut (consultez « U »)
Making all in stage3
array_range_check.cc:138:40: warning: invalid suffix on literal; C++11 requires a space between literal and string macro [-Wliteral-suffix]
       {STAGE3_ERROR(0, symbol, symbol, "Array access out of bounds (using constant value of %"PRId64", should be >= %"PRId64").", GET_CVALUE( int64, l->elements[i]), GET_CVALUE( int64, dimension->lower_limit)); continue;}
                                        ^
array_range_check.cc:138:101: warning: invalid suffix on literal; C++11 requires a space between literal and string macro [-Wliteral-suffix]
       {STAGE3_ERROR(0, symbol, symbol, "Array access out of bounds (using constant value of %"PRId64", should be >= %"PRId64").", GET_CVALUE( int64, l->elements[i]), GET_CVALUE( int64, dimension->lower_limit)); continue;}
                                                                                                     ^
array_range_check.cc:142:40: warning: invalid suffix on literal; C++11 requires a space between literal and string macro [-Wliteral-suffix]
       {STAGE3_ERROR(0, symbol, symbol, "Array access out of bounds (using constant value of %"PRId64", should be >= %"PRIu64").", GET_CVALUE( int64, l->elements[i]), GET_CVALUE(uint64, dimension->lower_limit)); continue;}
                                        ^
array_range_check.cc:142:101: warning: invalid suffix on literal; C++11 requires a space between literal and string macro [-Wliteral-suffix]
       {STAGE3_ERROR(0, symbol, symbol, "Array access out of bounds (using constant value of %"PRId64", should be >= %"PRIu64").", GET_CVALUE( int64, l->elements[i]), GET_CVALUE(uint64, dimension->lower_limit)); continue;}
                                                                                                     ^
array_range_check.cc:146:40: warning: invalid suffix on literal; C++11 requires a space between literal and string macro [-Wliteral-suffix]
       {STAGE3_ERROR(0, symbol, symbol, "Array access out of bounds (using constant value of %"PRIu64", should be >= %"PRIu64").", GET_CVALUE(uint64, l->elements[i]), GET_CVALUE(uint64, dimension->lower_limit)); continue;}
                                        ^
array_range_check.cc:146:101: warning: invalid suffix on literal; C++11 requires a space between literal and string macro [-Wliteral-suffix]
       {STAGE3_ERROR(0, symbol, symbol, "Array access out of bounds (using constant value of %"PRIu64", should be >= %"PRIu64").", GET_CVALUE(uint64, l->elements[i]), GET_CVALUE(uint64, dimension->lower_limit)); continue;}
                                                                                                     ^
array_range_check.cc:150:40: warning: invalid suffix on literal; C++11 requires a space between literal and string macro [-Wliteral-suffix]
       {STAGE3_ERROR(0, symbol, symbol, "Array access out of bounds (using constant value of %"PRIu64", should be >= %"PRId64").", GET_CVALUE(uint64, l->elements[i]), GET_CVALUE( int64, dimension->lower_limit)); continue;}
                                        ^
array_range_check.cc:150:101: warning: invalid suffix on literal; C++11 requires a space between literal and string macro [-Wliteral-suffix]
       {STAGE3_ERROR(0, symbol, symbol, "Array access out of bounds (using constant value of %"PRIu64", should be >= %"PRId64").", GET_CVALUE(uint64, l->elements[i]), GET_CVALUE( int64, dimension->lower_limit)); continue;}
                                                                                                     ^
array_range_check.cc:155:40: warning: invalid suffix on literal; C++11 requires a space between literal and string macro [-Wliteral-suffix]
       {STAGE3_ERROR(0, symbol, symbol, "Array access out of bounds (using constant value of %"PRId64", should be <= %"PRId64").", GET_CVALUE( int64, l->elements[i]), GET_CVALUE( int64, dimension->upper_limit)); continue;}
                                        ^
array_range_check.cc:155:101: warning: invalid suffix on literal; C++11 requires a space between literal and string macro [-Wliteral-suffix]
       {STAGE3_ERROR(0, symbol, symbol, "Array access out of bounds (using constant value of %"PRId64", should be <= %"PRId64").", GET_CVALUE( int64, l->elements[i]), GET_CVALUE( int64, dimension->upper_limit)); continue;}
                                                                                                     ^
array_range_check.cc:159:40: warning: invalid suffix on literal; C++11 requires a space between literal and string macro [-Wliteral-suffix]
       {STAGE3_ERROR(0, symbol, symbol, "Array access out of bounds (using constant value of %"PRId64", should be <= %"PRIu64").", GET_CVALUE( int64, l->elements[i]), GET_CVALUE(uint64, dimension->upper_limit)); continue;}
                                        ^
array_range_check.cc:159:101: warning: invalid suffix on literal; C++11 requires a space between literal and string macro [-Wliteral-suffix]
       {STAGE3_ERROR(0, symbol, symbol, "Array access out of bounds (using constant value of %"PRId64", should be <= %"PRIu64").", GET_CVALUE( int64, l->elements[i]), GET_CVALUE(uint64, dimension->upper_limit)); continue;}
                                                                                                     ^
array_range_check.cc:163:40: warning: invalid suffix on literal; C++11 requires a space between literal and string macro [-Wliteral-suffix]
       {STAGE3_ERROR(0, symbol, symbol, "Array access out of bounds (using constant value of %"PRIu64", should be <= %"PRIu64").", GET_CVALUE(uint64, l->elements[i]), GET_CVALUE(uint64, dimension->upper_limit)); continue;}
                                        ^
array_range_check.cc:163:101: warning: invalid suffix on literal; C++11 requires a space between literal and string macro [-Wliteral-suffix]
       {STAGE3_ERROR(0, symbol, symbol, "Array access out of bounds (using constant value of %"PRIu64", should be <= %"PRIu64").", GET_CVALUE(uint64, l->elements[i]), GET_CVALUE(uint64, dimension->upper_limit)); continue;}
                                                                                                     ^
array_range_check.cc:167:40: warning: invalid suffix on literal; C++11 requires a space between literal and string macro [-Wliteral-suffix]
       {STAGE3_ERROR(0, symbol, symbol, "Array access out of bounds (using constant value of %"PRIu64", should be <= %"PRId64").", GET_CVALUE(uint64, l->elements[i]), GET_CVALUE( int64, dimension->upper_limit)); continue;}
                                        ^
array_range_check.cc:167:101: warning: invalid suffix on literal; C++11 requires a space between literal and string macro [-Wliteral-suffix]
       {STAGE3_ERROR(0, symbol, symbol, "Array access out of bounds (using constant value of %"PRIu64", should be <= %"PRId64").", GET_CVALUE(uint64, l->elements[i]), GET_CVALUE( int64, dimension->upper_limit)); continue;}
                                                                                                     ^
array_range_check.cc:202:36: warning: invalid suffix on literal; C++11 requires a space between literal and string macro [-Wliteral-suffix]
    STAGE3_ERROR(0, symbol, symbol, "Subrange has lower limit (%"PRId64") larger than upper limit (%"PRId64").", GET_CVALUE( int64, symbol->lower_limit), GET_CVALUE( int64, symbol->upper_limit));
                                    ^
array_range_check.cc:202:71: warning: invalid suffix on literal; C++11 requires a space between literal and string macro [-Wliteral-suffix]
    STAGE3_ERROR(0, symbol, symbol, "Subrange has lower limit (%"PRId64") larger than upper limit (%"PRId64").", GET_CVALUE( int64, symbol->lower_limit), GET_CVALUE( int64, symbol->upper_limit));
                                                                       ^
array_range_check.cc:212:36: warning: invalid suffix on literal; C++11 requires a space between literal and string macro [-Wliteral-suffix]
    STAGE3_ERROR(0, symbol, symbol, "Subrange has lower limit (%"PRIu64") larger than upper limit (%"PRIu64").", GET_CVALUE(uint64, symbol->lower_limit), GET_CVALUE(uint64, symbol->upper_limit));
                                    ^
array_range_check.cc:212:71: warning: invalid suffix on literal; C++11 requires a space between literal and string macro [-Wliteral-suffix]
    STAGE3_ERROR(0, symbol, symbol, "Subrange has lower limit (%"PRIu64") larger than upper limit (%"PRIu64").", GET_CVALUE(uint64, symbol->lower_limit), GET_CVALUE(uint64, symbol->upper_limit));
                                                                       ^
ar: le modificateur « u » est ignoré puisque « D » est le défaut (consultez « U »)
Making all in stage4
Making all in generate_c
In file included from generate_c.cc:525:0:
generate_c_il.cc: In member function ‘virtual void* generate_c_il_c::visit(il_function_call_c*)’:
generate_c_il.cc:957:11: warning: this ‘if’ clause does not guard... [-Wmisleading-indentation]
           if (nb_param > 0)
           ^~
generate_c_il.cc:959:13: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the ‘if’
             if (param_value == NULL) {
             ^~
ar: le modificateur « u » est ignoré puisque « D » est le défaut (consultez « U »)
Making all in generate_iec
ar: le modificateur « u » est ignoré puisque « D » est le défaut (consultez « U »)
config.status: creating config/config.h
config.status: config/config.h is unchanged
[FINALIZING]




Quote 0 0
thiagoralves
Just ignore the warnings. It will work just fine
Quote 0 0
OpenPLC1

Thanks for the quick reply,
Congratulations to OpenPLC 🙂,
I don't see all the icons in the menu bar and when I want to open "Hello World" all the files are grayed out,
I can't open anything.
Is it possible that it is after installing "ScadaBR" on the same computer that is causing the problem?
cordially,

 Capture du 2020-03-25 15-36-40.png 

Quote 0 0
thiagoralves
You don’t see all icons because there isn’t any project open. The icons appear when there is a project open. To open a project you don’t have to select any file. Just open the directory where the project is located. The editor works with project directory, not project file
Quote 0 0
OpenPLC1
Thank you for the quick response,Very well now it works. 
I sent the program to the Rasspberry PI with an Arduino slave.
I am very happy 🙌🙌.I would like to try the simulation but there is a message in the console.Regards,
Start build in /home/med/OpenPLCMesFichier/TestSimul/build
Generating SoftPLC IEC-61131 ST/IL/SFC code...
Compiling IEC Program into C code...
Extracting Located Variables...
C code generated successfully.
PLC :
   [CC]  plc_main.c -> plc_main.o
/home/med/OpenPLCMesFichier/TestSimul/build/plc_main.c: In function ‘CheckFilehash’:
/home/med/OpenPLCMesFichier/TestSimul/build/plc_main.c:451:2: warning: ignoring return value of ‘fread’, declared with attribute warn_unused_result [-Wunused-result]
  fread(&size, sizeof(size), 1, retain_buffer);
  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/med/OpenPLCMesFichier/TestSimul/build/plc_main.c:457:3: warning: ignoring return value of ‘fread’, declared with attribute warn_unused_result [-Wunused-result]
   fread(&file_digit, sizeof(char), 1, retain_buffer);
   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/med/OpenPLCMesFichier/TestSimul/build/plc_main.c: In function ‘Remind’:
/home/med/OpenPLCMesFichier/TestSimul/build/plc_main.c:658:2: warning: ignoring return value of ‘fread’, declared with attribute warn_unused_result [-Wunused-result]
  fread((void *)p, count, 1, retain_buffer);
  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   [CC]  plc_debugger.c -> plc_debugger.o
py_ext :
   [CC]  py_ext.c -> py_ext.o
PLC :
   [CC]  Config0.c -> Config0.o
   [CC]  Res0.c -> Res0.o
Linking :
   [CC]  plc_main.o plc_debugger.o py_ext.o Config0.o Res0.o -> TestSimul.so
Successfully built.
Traceback (most recent call last):
  File "/home/med/OpenPLCEdit/OpenPLC_Editor/editor/Beremiz_service.py", line 489, in <module>
    import runtime.NevowServer as NS  # pylint: disable=ungrouped-imports
  File "/home/med/OpenPLCEdit/OpenPLC_Editor/editor/runtime/NevowServer.py", line 31, in <module>
    from nevow import appserver, inevow, tags, loaders, athena, url, rend
ImportError: No module named nevow
Traceback (most recent call last):
  File "/home/med/OpenPLCEdit/OpenPLC_Editor/editor/Beremiz_service.py", line 493, in <module>
    NS.WorkingDir = WorkingDir
NameError: name 'NS' is not defined
Beremiz_service:  1.0
Nevow/Athena import failed :
"/usr/bin/python2.7" "/home/med/OpenPLCEdit/OpenPLC_Editor/editor/Beremiz_service.py" -p 61618 -i localhost -x 1 /tmp/tmpMXmCE1
exited with status 1 (pid 12814)
PYRO connecting to URI : PYROLOC://127.0.0.1:61618
Exception while connecting to 'LOCAL://': connection failed
Connection failed to LOCAL://!

Quote 0 0
thiagoralves
Open terminal on your pi and type:
pip install Nevow
Quote 0 0
OpenPLC1
Thank you for the quick response.
Very well now the simulation works.

I have "OpenPLC Editor" installed on a computer with ubuntu.
I can install "ScadaBR" on the same computer or is it better on a virtual machine with VirtualBox?
Or with another computer with Wind .... or Ubuntu?
Thank you very much for your help and wish you all the best with OpenPLC
 
Quote 0 0
thiagoralves
Same computer should work just fine 
Quote 0 0