我已经使用libnodave库建立了与西门子S7-300 PLC(通过PlcSIM模拟)的连接。将数据连接到PLC并将数据写入PLC没有问题。但是,我无法从启动/停止更改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);
}
在示例中,只有在与PLC建立MPI连接时才会调用启动/停止功能。有谁知道是否支持使用TCP连接启动/停止功能?如果是的话,有什么可能导致我的错误的建议吗?
答案 0 :(得分:0)
我刚刚使用libnodave 8.4和NetToPlcSim工具尝试了dc.start()和dc.stop()。它工作得很好。可能你不使用通过TCP / IP连接到PLCSim的NetToPlcSim工具(显然是127.0.0.1端口102)因此dc甚至无法连接。所以,如果你的台词不起作用,那么你一定是做错了。