政府网站信息内容建设自查报告公司做个网站多少钱
目录
一、测试任务
二、测试环境
三、PLC工程
1、组态配置
2、ip地址、端口号
3、全局变量定义
四、C#端Winform程序创建
1创建主界面
2、创建子窗口
3、运行生成,界面效果
4、Modebus协议说明
5、Modebus操作说明
六、测试
1、寄存器读测试
2、MW1300寄存器的BIT位
3、写寄存器测试
4、PLC断电或者断网
七、工程下载连接
一、测试任务
1、PLC作为ModebusTCP端,端口号都是502,PC端上位机软件作为TcpClient去连接多台PLC。PC端读写PLC寄存器。
2、PC端在有的PLC断电、断网的情况下,界面不会阻塞卡死,对其它PLC读写正常。在断网的PLC重新连接网络可以手动连接。
二、测试环境
1、PLC设备:汇川AM402,编程软件InProShop(v1.7.3)
2、PC端:Win10系统、VS2013编程软件。
三、PLC工程
1、组态配置
2、ip地址、端口号
192.168.1.88
502
3、全局变量定义
VAR_GLOBALStateArray AT%MW1300 :ARRAY[1..200] OF WORD;_MW1300Bit0 AT %MX2600.0 :BOOL;_MW1300Bit1 AT %MX2600.1 :BOOL;_MW1300Bit2 AT %MX2600.2 :BOOL;_MW1300Bit3 AT %MX2600.3 :BOOL;_MW1300Bit4 AT %MX2600.4 :BOOL;_MW1300Bit5 AT %MX2600.5 :BOOL;_MW1300Bit6 AT %MX2600.6 :BOOL;_MW1300Bit7 AT %MX2600.7 :BOOL;_MW1300Bit8 AT %MX2600.8 :BOOL;_MW1300Bit9 AT %MX2600.9 :BOOL;_MW1300Bit10 AT %MX2600.10 :BOOL;_MW1300Bit11 AT %MX2600.11 :BOOL;_MW1300Bit12 AT %MX2600.12 :BOOL;_MW1300Bit13 AT %MX2600.13 :BOOL;_MW1300Bit14 AT %MX2600.14 :BOOL;_MW1300Bit15 AT %MX2600.15 :BOOL;_MW860 AT%MW860 :WORD;_MW861 AT%MW861 :WORD;_MW862 AT%MW862 :WORD;_MW863 AT%MW863 :WORD;_MW864 AT%MW864 :WORD;_MW865 AT%MW865 :WORD;_MW866 AT%MW866 :WORD;_MW867 AT%MW866 :WORD;_MW868 AT%MW866 :WORD; END_VAR
四、C#端Winform程序创建
1创建主界面
在主界面中添加两个Panel控件,用以加载两台PC的Client窗口界面。使用Panel的优点是,对于多台PLC设备,只需要创建一个子窗口加载到多个Panel控件中即可。
2、创建子窗口
3、运行生成,界面效果
4、Modebus协议说明
注意:批量读寄存器,尽量不要太多,一般一次100个左右
//MBAP报文头//buffer[0] 事务处理标识符Hi//buffer[1] 事务处理标识符Lo//buffer[2] 协议标识符 0x00//buffer[3] 协议标识符 0x00//buffer[4] 长度//buffer[5] 长度 即从buffer【6】--校验符前的长度//buffer[6] 单元标识符 建议:在采用0xFF作为“单元标识符”的无效值//请求数据//buffer[7] 功能码(0x03) 读多个寄存器//buffer[8] 起始地址//buffer[9] 起始地址//buffer[10] 寄存器数量1至125(0x7D)//buffer[11] 寄存器数量1至125(0x7D)
5、Modebus操作说明
批量读寄存器
/// <summary>/// 读取批量寄存器值:122个寄存器 800-1400/// </summary>/// <returns></returns>public byte[] ReadMultiCmd(){readbuffer[5] = 0x06; // 长度readbuffer[7] = 0x03; //功能码readbuffer[8] = 0x05; //起始地址-高位readbuffer[9] = 0x14; //起始地址-低位readbuffer[10] = 0x00;readbuffer[11] = 0x7A; //122个寄存器 1300-1422return readbuffer;}
写单个寄存器
/// <summary>/// MW860写值/// </summary>/// <param name="value"></param>/// <returns></returns>public byte[] Write_MW860(int value){writebuffer[5] = 0x06; // 长度writebuffer[7] = 0x06; //功能码 writebuffer[8] = 0x03; //起始地址-高位writebuffer[9] = 0x5C; //起始地址-低位 d860 writebuffer[10] = 0x00; //寄存器值writebuffer[11] = (byte)value;return writebuffer;}
六、测试
PLC只有一台。
1、寄存器读测试
读寄存器范围:mw1300-mw1500
给MW1300-MW1306如下赋值
C#读取到的值
2、MW1300寄存器的BIT位
3、写寄存器测试
写寄存器范围:mw860-mw868
C#端写操作
PLC端接收到的
4、PLC断电或者断网
PLC重新上电后接入网络,只需要点击重新连接按钮即可。
七、工程下载连接
分别是Winform程序PLC程序
https://download.csdn.net/download/panjinliang066333/87523222