做网站什么价格,邮编域名做网站,检察 门户网站建设,wordpress文章页5031、通讯库介绍
mcprotocol 是一个基于 Node.js 的三菱 PLC MC 协议通信库#xff0c;具有以下特点#xff1a;
支持多种三菱 PLC MC 协议的设备#xff0c;如 FX3U、Q03UDECPU、QJ71E71 等。
支持多种功能码和数据类型#xff0c;如读取线圈#xff08;M#xff09;、…1、通讯库介绍
mcprotocol 是一个基于 Node.js 的三菱 PLC MC 协议通信库具有以下特点
支持多种三菱 PLC MC 协议的设备如 FX3U、Q03UDECPU、QJ71E71 等。
支持多种功能码和数据类型如读取线圈M、读取寄存器D、写入寄存器D、读取扩展寄存器D*、读取位寄存器X/Y、读取字寄存器W等。
支持多种通信方式如 TCP、UDP、串口等。
代码结构清晰易于扩展和二次开发。支持 Promise、async/await 等语法糖提高开发效率。
mcprotocol 的主要功能是实现与三菱 PLC MC 协议设备之间的数据交互例如读取设备上的某个寄存器的值并将其传递给 Node.js 应用程序。在使用该库进行开发时需要先连接到 PLC 设备然后使用库提供的接口进行数据读写操作。
通讯协议库是一种软件开发工具用于实现PLC与其他设备之间的通讯功能。三菱PLC通讯协议库是一款专门为三菱PLC开发的通讯协议库可以实现PLC与上位机、HMI、SCADA系统等设备之间的数据交换和通讯。
三菱PLC通讯协议库具有以下主要功能
1数据读写功能可以实现对PLC内部数据的读写操作包括读取PLC内部寄存器的值、写入数据到PLC内部寄存器等。
2报警处理功能可以实时监测PLC的报警信息并将报警信息传输给上位机或其他设备进行处理。
3远程监控功能可以实现对PLC的远程监控和控制可以通过上位机或HMI实时查看和操作PLC的运行状态。
4数据传输功能可以实现PLC与其他设备之间的数据传输包括实时数据传输、历史数据传输等。
2、开干
这节继续使用上节的VS2022的项目增加一个方法 MCProtocolLibTest()具体怎么创建项目见上节的过程。C#上位机与三菱PLC的通信04--MC协议之A-1E报文测试
1、引入通讯库 2、连接PLC 3、启动服务器 4、读取数据
1、读取D100地址开始的2个int类型数据 2、 通过A1E进行D102的双字 DWord(Float) 读取即读取float类型--4Byte /// summary/// 第3方通讯库测试/// /summary/// exception crefNotImplementedException/exceptionprivate static async void MCProtocolLibTest(){McProtocolTcp mcProtocolTcp new McProtocolTcp(192.168.1.7, 6000, McFrame.MC1E);await mcProtocolTcp.Open();if (mcProtocolTcp.Connected){Console.WriteLine(连接成功!); Console.WriteLine(读取D100地址开始的2个int类型数据);var result1 await mcProtocolTcp.ReadDeviceBlock(PlcDeviceType.D, 100, 2);for (int i 0; i result1.Length; i){//每2个字节一组byte[] temp new byte[2];temp[0] result1[i];temp[1] result1[i];Console.WriteLine(BitConverter.ToInt16(temp, 0));//字节数组转换成int16数据}Console.WriteLine(读取D102地址开始的1个float类型数据);var result2 await mcProtocolTcp.ReadDeviceBlock(PlcDeviceType.D, 102, 2);for (int i 0; i result1.Length; i){//每4个字节一组byte[] temp new byte[4];temp[0] result2[i];temp[1] result2[i];temp[2] result2[i];temp[3] result2[i];Console.WriteLine(BitConverter.ToSingle(temp, 0));//字节数组转换成float数据}}} 3、通过A1E进行位的读取M16M区的地址要转换成16进制即读取bool类型数据 5、写入数据