从西门子s7-1200(0x8104)读取时出现libnodave错误

时间:2014-05-19 19:10:31

标签: plc libnodave s7-1200 siemens

在检查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上尝试了各种版本。

2 个答案:

答案 0 :(得分:7)

我遇到了与libnodave完全相同的问题,也尝试过Snap7并在S71200上遇到类似的错误

结果是一个新的安全选项被添加到TIA 12及更高版本,默认情况下不允许远程访问读取/更新块。如果没有此选项,只有西门子工具可以访问数据。

在TIA中,在CPU项目的属性下,选择“保护”,有一个选项“允许来自远程伙伴的PUT / GET通信访问....”

Snap7的作者也在他的文档(使用TIA截图)中对此进行了解释

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

答案 1 :(得分:1)

从功能块读出数据?你的意思是Data Block吗? 默认情况下,S7-1200具有间接访问权限。检查是否禁用了优化块访问。