3

在检查 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。

我可以通过 Siemens SDK 访问这些内存块:它们存在并包含有效数据。

为什么 S7-1200 拒绝向 libnodave 发送数据?是否有任何选项可以使数据块从网络中可用?

我用的是 EPICS 版本。3.14.12.4, s7nodave 1.03 build with asyn ver. 4.11,增强版。1.55.0。在 PC 和 Virtualbox 上尝试了各种版本。

4

2 回答 2

6

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

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

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

Snap7 的作者在他的文档中也有对此的解释(附有 TIA 截图)

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

于 2014-08-12T12:15:39.423 回答
1

从功能块中读取数据?你不是说数据块吗?S7-1200 默认开启间接访问。检查是否禁用了优化块访问。

于 2014-05-30T10:56:14.637 回答