在检查s7nodave对S7-1200的EPICS设备支持时,我遇到了一个引用libnodave的问题。当我尝试读取PLC中的任何内存地址时,IOC控制台报告错误:
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.
这是libnodave状态代码0x8104。当我试图在网上搜索此错误代码时,所有结果都是参考S7-1500而不是S7-1200。
我可以通过西门子SDK访问这些内存块:它们存在且包含有效数据。
为什么S7-1200拒绝发送libnodave数据?有没有选择让网络提供数据块?
我使用了EPICS版本。 3.14.12.4,s7nodave 1.03 build with asyn ver。 4.11,boost ver。 1.55.0。 在PC和Virtualbox上尝试了各种版本。
答案 0 :(得分:7)
我遇到了与libnodave完全相同的问题,也尝试过Snap7并在S71200上遇到类似的错误
结果是一个新的安全选项被添加到TIA 12及更高版本,默认情况下不允许远程访问读取/更新块。如果没有此选项,只有西门子工具可以访问数据。
在TIA中,在CPU项目的属性下,选择“保护”,有一个选项“允许来自远程伙伴的PUT / GET通信访问....”
Snap7的作者也在他的文档(使用TIA截图)中对此进行了解释
答案 1 :(得分:1)
从功能块读出数据?你的意思是Data Block吗? 默认情况下,S7-1200具有间接访问权限。检查是否禁用了优化块访问。