1

我已经使用 libnodave 库建立了与 Siemens S7-300 PLC(通过 PlcSIM 模拟)的连接。将数据连接和写入 PLC 没有问题。但是,我无法从 Start/Stop 更改 PLC 的状态。我正在尝试将以下 libnodave 方法用于此类操作:

int daveStatus = daveStart(dc);
int daveStatus = daveStop(dc);

两个函数调用都返回相同的错误:33794

nodave.c引用错误如下:

案例 0x8402:返回“CPU 已处于 RUN 或已处于 STOP 状态?”;

daveStart()和函数的使用daveStop()可以在例子中查看testS7online.c

if(doStop) {
    daveStop(dc);
}
if(doRun) {
    daveStart(dc);
}

在示例中,仅当 MPI 连接到 PLC 时才会调用启动/停止功能。有谁知道 TCP 连接是否支持启动/停止功能?如果是这样,关于可能导致我的错误的任何建议?

4

1 回答 1

0

我刚刚使用 libnodave 8.4 和 NetToPlcSim 工具尝试了 dc.start() 和 dc.stop()。它工作得很好。可能您不使用 NetToPlcSim 工具通过 TCP/IP(显然是 127.0.0.1 端口 102)连接到 PLCSim,因此 dc 甚至无法连接。因此,如果您的线路不起作用,那么您一定做错了什么。

于 2013-12-26T12:02:17.997 回答