我正在用C#.Net开发一个与PLC通信的应用程序。我希望应用程序通过TCP / IP进行通信。总之,我在C#.Net上有很好的经验,但我对这个领域很新。
应用程序的功能。
在写这篇文章之前,我在Google上谈到这个主题,并发现了几篇关于PLC通信的文章。
大多数关于通过静态地址访问PLC数据的所有文章都根据不同的PLC而有所不同。
我还读到了SCADA,它提供了应用程序和PLC之间的桥梁,但它是付费的。
经过大量的冲浪后,我决定为系统创建一个POC。
以下是POC的工作原理:
我测试了POC及其运行良好(100个变量),但如果变量和客户端(PLC)将来增加,我不确定通信方式和性能。
这是进行这种沟通的好方法吗?
您能否在构建可扩展的高性能应用程序时向我提供宝贵的建议?
答案 0 :(得分:0)
据我所知,你的方法涉及plc中的大量编程。而且我们不喜欢那样。 我认为你应该使用一个OPC服务器并将你的应用程序连接到它。 其他解决方案是为西门子家族公司使用'freedave'库。
答案 1 :(得分:0)
看看AdvancedHMI。它是一个Visual Studio解决方案,具有许多用于从PLC读取数据的通信驱动程序。它基于VB,但很容易将C#项目添加到解决方案中。
答案 2 :(得分:0)
我会使用Modbus。我不喜欢你如何从字符串中转换所有内容。 Modbus将以ushorts的形式读取字节,您可以使用显式布局自行运行转换。对于数字数据,这应该更快。这就是我对背景工作者所做的一切,它完美无缺。这个解决方案效果很好,特别是考虑到它是免费的,过去我使用OPC没有运气。
答案 3 :(得分:0)
与plc的TCPIP通信可以使用仅与西门子plc兼容的开源API snap7完成。
也许更可靠的设置是通过opc服务器进行通信。这可以通过kepware或SNMP SIEMENS
来完成有几个.net API可以bought允许通过这些协议通过opc进行通信(there are other protocols)
我已经成功地使用了第一个协议,虽然它仅用于在一个plc上读取+/- 500个变量,但无法就性能问题向您提供建议。
我认为通过opc进行沟通是推荐的方法。供应商api为您提供可行代码保证。成本opcda .net包装在800到1200美元之间