项目中需要采集PLC上的数据,之前仅仅学习了一点点PLC的内容,且未涉及通信方面。所以我希望能通过本地的C#读写PLC的数据。其中遇到了很多的问题。
工具:博图V16,PLCSIM V16,S7.NET
问题1:虚拟机的PLCSIM无法被访问到。
开始我使用的时PLCSIM Advance,我不懂这玩意怎么把PLC的IP地址暴露在局域网内,只好采用PLCSIM V16和NETTOPLCSIM,将PLC的IP地址设置为虚拟机的IP地址,然后C#使用S7.NET就能连接了。
Tips:我将PLCSIM Advance的IP和西门子虚拟网卡IP设置和虚拟机同网段时,虚拟机可以ping通PLC,但是在我的电脑上不能ping。虽然可以在服务器上看到,我的西门子虚拟网卡分配了一个IP,但是在其他虚拟机上,我仍然不能ping通。最后采用了上面的那个方法。
问题2:读取PLC的数据错误
在S7.NET中,写操作时,要写入的变量类型必须严格和要写入的变量的类型相同,不然写入不成功。在操作博图监控表时,得点右键“全部监控”,才能看到变化得变量。但是我的强制值好像并没有起作用。
有同样问题的朋友可以多多交流。