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. 126.96.36.199, s7nodave 1.03 build with asyn ver. 4.11, boost ver. 1.55.0.
Tried various versions both on PC and Virtualbox.
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)
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.