Tag: plc

C#.NET中的PLC编程

我可以在C#中编写用于PLC控制的程序吗? 怎么样?

从C#发送FINS命令到PLC

我尝试通过UDP从PC(C#.NET)发送FINS命令到PLC以太网模块(Omron),但是没有从PLC得到任何响应,并且不知道我可以在哪里开始故障排除。 PLC具有非常简单的梯形逻辑如下:如果DM100值为#0001 ,则在输出101.00上触发。 (这里,“触发器”只是存储区域D100的符号名称,“输出”是输出的符号101.00 ) 然后我写了一段C#执行FINS命令“Memory Area Write”,其命令代码为01 02 ,后跟起始地址,要写入的项目数和数据。 C#代码应将# 0001的值写入PLC的D100区域,以便在101.00上触发ON。 [删除不起作用的代码] .. 输出101.00没有被触发,也没有收到任何exception。 我确定了以下内容: 正确配置的端口,节点和地址由CX-Programmer中的“在线工作”确认。 我还ping每个IP以确保节点已连接。 UdpClient代码是有效的,因为我写了一个非常简单的服务器/客户端代码,成功发送和接收数据包。 梯形逻辑没有问题。 我将梯子转移到PLC并在监控模式下通过在线测试并手动设置D100值。 我怀疑fins_cmnd数组中有错误,但正如我的代码中所见,我已经对每个值进行了详细评论; 我不可能发现自己错过任何东西。 我怀疑我可能没有正确解析hex,但同样,我也没有例外来指导我。 我不知道在哪里以及如何排除故障。 希望有人在这里使用FINS编程或PLC经验可以为我提供一些帮助。 [回答] 感谢Porge的链接 – 这让我发现了问题所在。 经过几个小道后终于开始工作了。 请参阅下面的工作代码。 string SERV_IP_ADDR = “192.168.250.1”; const int FINS_UDP_PORT = 9600; byte[] sendPacket = new byte[] { // Full UDP packet: 80 00 02 00 […]