我正在用C#构建一个应用程序,需要与Allen-Bradley Micrologix PLC对话。我知道InGear驱动程序可以与之交谈。我过去曾使用InGear与其他Allen-Bradley PLC交谈,因此我知道与他们一起授权会给我带来麻烦。
我想知道的是:是否有基于TCP或UDP的协议可以直接与Micrologix PLC通信?显然必定会有一些东西,因为InGear可能会在一些较低级别的协议上构建协议。
答案 0 :(得分:3)
Micrologix系列PLC使用PCCC(又名CSP)协议,这是通过TCP承载的DF1协议。最清晰可用的代码是Ron Gage多年前写的。艾伦布拉德利有一份文件可以很好地详细说明原始DF1协议,结合Ron Gage的代码,很容易弄明白。除了初始握手之外,它是一个非常简单的请求/响应协议。这与PLC-5系列(来自1980年代)和SLC系列(来自1990年代)使用的协议相同,但随着时间的推移逐渐被弃用。
它支持的第二个协议是Ethernet / IP,它使用称为" CIP"可以通过UDP或TCP传输,但在初次接触时,您必须使用TCP。协议标准是" open"并由ODVA出版。这也是欧姆龙品牌PLC等人使用的协议。对于此通信,您将需要使用未连接的消息传递模式(请求/响应)。我使用" cpppo"取得了巨大的成功。 Python中的协议栈但我不知道在.NET中有什么用。
该PLC系列使用的第三个协议是Modbus / TCP或Modbus(串行格式),具体取决于PLC。它可以充当主人或奴隶。 Modbus是最简单的协议。 modbus.org网站上免费提供协议本身的完整文档。我曾经使用过较旧的型号而不是1400型,所以我不能具体说明它支持哪种Modbus风格。由于该协议基本上得到了市场上每个PLC品牌的支持,因此有无数的软件库支持它。任何合理称职的程序员通常都可以从头开始写一天大约一天的工作,因为它非常简单。