3

While checking s7nodave's EPICS device support for S7-1200 I've encountered a problem that refers to libnodave. When I'm try to read any memory address in PLC, IOC console reports an error:

epics> 2014/05/19 14:20:41.964 Siemens-PLC error while reading 1 bytes from PLC address FB35. Status = context not supported. Step7 says:Function not implemented or error in telgram.

That is libnodave status code 0x8104. When I've tried to search the web for this error code, all results were referencing to S7-1500, not S7-1200.

I can access those memory blocks through Siemens SDK: they exist and contain valid data.

Why does S7-1200 refuse to send libnodave the data? Is there any option to make data blocks available from network?

I used EPICS ver. 3.14.12.4, s7nodave 1.03 build with asyn ver. 4.11, boost ver. 1.55.0. Tried various versions both on PC and Virtualbox.

ZF007
  • 3,708
  • 8
  • 29
  • 48
user3653898
  • 31
  • 1
  • 3
  • 1
    I've had great success using libnodave, but I've never used it with S7 1200 personally. If you can't solve your problem then take a look at alternative library http://snap7.sourceforge.net. – avra Jul 08 '14 at 19:00

2 Answers2

7

I ran into the exact same issue with libnodave, also tried Snap7 and got a similar error on the S71200

It turned out to be a new security option that was added to TIA 12 and higher that by default disallows remote access to read/update blocks. without this option, only Siemens tools have access to the data.

In TIA, under the properties for the CPU project, select "Protection" there is an option for "Permit access with PUT/GET communications from remote partner...."

The author of Snap7 also has an explanation of this in his documentation (with TIA screenshots)

http://snap7.sourceforge.net/snap7_client.html

Roatin Marth
  • 23,589
  • 3
  • 51
  • 55
  • 1
    Ah, that explains a lot. Only the tools with an S7 license has access. Good to read that it is a safety feature that has to be disabled. But also a reminder that disabling safety can be risky and one should realy considering using a license for ODK, on project base not that expensive, or using open communication. –  Oct 17 '14 at 11:33
  • Thanks! Note that you may need to scroll down to see the "Permit acess.." option. – M Granja Feb 03 '15 at 17:48
  • This is the right answer! What I've failed to see for a while is that the "Protection" tab has a looooooong scroll down bar, with LOTS of empty space before you get to the "PUT/GET" option! – IgorMF Mar 01 '18 at 20:11
1

Read out data from a Function Block? Don't you mean Data Block? S7-1200 has indirect access on by default. Check if Optimised Block access is disabled.

  • Please note that stackoverflow is not a forum, and you should only post what you see as solutions to the problem. Comments such as this should be added as comments on existing solutions. Thanks :-) – Mr. Developerdude Oct 15 '14 at 19:59
  • This is not a discussion. It is a basic error to confuse a FB with a DB. –  Oct 17 '14 at 11:27
  • @Studeerkamertechnicus Lennart is right, nevertheless. Your answer is hardly what can be called qualified. In order to clarify what has been asked, comments should be used and the OP should edit his question accordingly. After it is clear what is asked and what the exact problem is, the problem should be completely answered. – Markus W Mahlberg Feb 03 '15 at 21:52