Welcome, Guest
Username: Password: Remember me

TOPIC: Communicate with Siemens S7-1200 PLC using Nodave

Communicate with Siemens S7-1200 PLC using Nodave 3 years 3 weeks ago #10981

  • davew
  • davew's Avatar
  • OFFLINE
  • Fresh Boarder
  • Posts: 16
  • Karma: 0
Claes,
I'm still having problems with this.

When I build from the source tree pwre configure shows nodave as found but it doesn't link anything with it. Everything is still linked with nodave_dummy.

Is that correct?

I understand its not really necessary to link with nodave at this point, the project needs to be linked with it when that gets built.

So next I build the deb packages, install the developer package on my developer machine, create my project with the required build options and build the project.

This is where it goes wrong now.
The plc programme is still linked with nodave_dummy.
The error messages produced when it runs are all from nodave_dummy.
I haven't yet tried distributing to a runtime node, my tests are all on a development node.

I checked the created executables using the strings command. Everything comes back as nodave_dummy seemingly statically linked.

My nodave is a shared library, might that be the issue?

I read and re-read the "Guide to I/O System" and the sections on "MotionControl USB I/O" and "Velleman K8055" seem close to what I'm trying to do, though they are seemingly out of date.

I checked the .opt files produced for the versions of PLC programs. Both look like this:
`: Autogenerated options file, Do not edit !!` $pwrb_root/os_linux/hw_x86_64/exp/obj/rt_io_user.o -lpwr_rt -lpwr_pnak_dummy -lpwr_cifx_dummy -lpwr_usb_dummy -lpwr_usbio_dummy -lnodave -lpwr_epl_dummy

I suspect that this file is not getting used.
I assume this file is generated by my BuildOptions in the project.

Any pointers?

Thanks,

Dave W.
The administrator has disabled public write access.

Communicate with Siemens S7-1200 PLC using Nodave 3 years 2 weeks ago #10982

  • claes
  • claes's Avatar
  • OFFLINE
  • Platinum Boarder
  • Posts: 3177
  • Thank you received: 502
  • Karma: 133
Hi Dave,

The opt-file is generated from the BuildOptions object placed under the NodeConfig object for the current node. Note the PlcProcess attribute that should contain the name of the PlcProcess object. This name will be part of the name of the opt-file. If an opt-file with the correct name is found there will be a print in the terminal window when the node is built that a local option file is used.

/Claes
The administrator has disabled public write access.

Communicate with Siemens S7-1200 PLC using Nodave 3 years 2 weeks ago #10983

  • davew
  • davew's Avatar
  • OFFLINE
  • Fresh Boarder
  • Posts: 16
  • Karma: 0
Claes,
You are brilliant.
That was the solution.

Thanks you.

Hopefully I am now sufficiently educated with the build system to work out everything else myself.

Dave W.
The administrator has disabled public write access.

Communicate with Siemens S7-1200 PLC using Nodave 4 weeks 18 hours ago #12268

  • Mikahi
  • Mikahi's Avatar
  • OFFLINE
  • Fresh Boarder
  • Posts: 15
  • Karma: 0
Hello!

I'm on a mission to setup ProviewR as HMI and data collection system for several S7-300 PLCs. On Windows side of world I have used libnodave and it works flawless. But now I would need to make it work with PW v6.0 on Ubuntu 22.04.4 LTS 64 bit.

I have followed the getting started guide and other information about setting nodave into use. And I'm getting a feeling that it should work on 64 bit environment as well. Like this claims:
Linux Libnodave example read data Siemens S7-300

I think I have set nodave_plc, nodave_transaction and buidoptions correctly:

20240327_075612.jpg


But only I get is "Failed to inititalize io: %IO-E-RELEASEBUILD, I/O system is not built...:

20240327_075653.jpg


Can anyone provide any tips how to proceed.

Thanks!
Mika
The administrator has disabled public write access.

Communicate with Siemens S7-1200 PLC using Nodave 2 weeks 5 days ago #12275

  • Mikahi
  • Mikahi's Avatar
  • OFFLINE
  • Fresh Boarder
  • Posts: 15
  • Karma: 0
Hello!

I have been banging my head to wall with this. I was able to confirm that libnodave will work on 64 bit environment. Libnodave testfunction called testISO_TCP connects and reads/writes PLC data as normal.

To get rid of "Failed to inititalize io: %IO-E-RELEASEBUILD, I/O system is not built.." message and to make it work, that's where I get lost. Is the only way forward to build from source?

Thanks again,
Mika
The administrator has disabled public write access.

Communicate with Siemens S7-1200 PLC using Nodave 2 weeks 5 days ago #12276

  • Mikahi
  • Mikahi's Avatar
  • OFFLINE
  • Fresh Boarder
  • Posts: 15
  • Karma: 0
Hi,

Spent some time with source files. There is a nodave_dummy folder and nodave_dummy.c file. I guess file should be replaced with a proper one and headers should be placed somewhere.. not to mention makefile..

First try on build produced just a bunch of errors. I took my changes back and it compiles and runs again.

I've been reading Developer's Guide and probably need to continue with that.

Mika
The administrator has disabled public write access.
Time to create page: 8.577 seconds