【发布时间】:2013-11-26 08:17:19
【问题描述】:
我已经使用 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 连接是否支持启动/停止功能?如果是这样,关于可能导致我的错误的任何建议?
【问题讨论】:
-
你用真正的PLC试过了吗? PLCSIM 是否处于 RUN-P 模式?有时模拟只是模拟......这是一个替代 S7 库:snap7.sourceforge.net
-
有可能,在 PLCSim 中不支持通过 libnodave 将 PLC 状态从运行更改为停止。您绝对可以在它的 Step7 窗口中更改 PLCSim 的状态。但我会在一周内检查您的问题并回复更多信息。