Libnodave - daveStart()使用TCP连接时出错

时间:2013-11-13 16:10:13

标签: c++ plc libnodave

我已经使用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连接启动/停止功能?如果是的话,有什么可能导致我的错误的建议吗?

1 个答案:

答案 0 :(得分:0)

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