汇川AM402、H3U和上位机C#ModebusTcp通讯

这篇具有很好参考价值的文章主要介绍了汇川AM402、H3U和上位机C#ModebusTcp通讯。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

一、测试任务

二、测试环境

三、PLC工程

1、组态配置

2、ip地址、端口号

 3、全局变量定义

四、C#端Winform程序创建

1创建主界面

 2、创建子窗口

 3、运行生成,界面效果

4、Modebus协议说明

5、Modebus操作说明

六、AM402测试

1、寄存器读测试

 2、MW1300寄存器的BIT位

3、写寄存器测试

4、PLC断电或者断网后重新连接

 七、H3U读写测试

1、读寄存器测试

2、写寄存器测试

八、工程下载连接


一、测试任务

1、PLC作为ModebusTCP端,端口号都是502,PC端上位机软件作为TcpClient去连接多台PLC。PC端读写PLC寄存器。

2、PC端在有的PLC断电、断网的情况下,界面不会阻塞卡死,对其它PLC读写正常。在断网的PLC重新连接网络可以手动连接。

二、测试环境

1、AM402系列PLC设备:汇川AM402,编程软件InProShop(v1.7.3)

2、H3U系列PLC设备:会场H3U-322MT,编程软件AutoShop v4.6.3

3、PC端:Win10系统、VS2013编程软件。

备注:①通讯协议方面AM402和H3U是一样的,上位机代码通用。

②MW寄存器对应D寄存器,比如MW1000则对应D1000。需要注意的是MW寄存器范围是0-65535、D寄存器范围 ±32768。

一次最多可以读123个寄存器操作。

三、PLC工程

1、组态配置

汇川AM402、H3U和上位机C#ModebusTcp通讯

2、ip地址、端口号

192.168.1.88

502

汇川AM402、H3U和上位机C#ModebusTcp通讯

汇川AM402、H3U和上位机C#ModebusTcp通讯

 3、全局变量定义

VAR_GLOBAL
	StateArray 		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控件中即可。

汇川AM402、H3U和上位机C#ModebusTcp通讯

 2、创建子窗口

汇川AM402、H3U和上位机C#ModebusTcp通讯

 3、运行生成,界面效果

汇川AM402、H3U和上位机C#ModebusTcp通讯

4、Modebus协议说明

 注意:批量读寄存器,尽量不要太多,一般一次最多123个

            //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个寄存器 1300-1421
        /// </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-1422
            return 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;
        }

封装Tcp Client类,接收和发送缓冲区设置大一点

汇川AM402、H3U和上位机C#ModebusTcp通讯

 定义存储接收数据的长度

汇川AM402、H3U和上位机C#ModebusTcp通讯

六、AM402测试

PLC只有一台。

1、寄存器读测试

读寄存器范围:mw1300-mw1500

给MW1300-MW1306如下赋值

汇川AM402、H3U和上位机C#ModebusTcp通讯

 C#读取到的值

汇川AM402、H3U和上位机C#ModebusTcp通讯

 2、MW1300寄存器的BIT位

汇川AM402、H3U和上位机C#ModebusTcp通讯

汇川AM402、H3U和上位机C#ModebusTcp通讯

3、写寄存器测试

写寄存器范围:mw860-mw868

C#端写操作

汇川AM402、H3U和上位机C#ModebusTcp通讯

 PLC端接收到的

汇川AM402、H3U和上位机C#ModebusTcp通讯

4、PLC断电或者断网后重新连接

PLC重新上电后接入网络,只需要点击重新连接按钮即可。

汇川AM402、H3U和上位机C#ModebusTcp通讯

汇川AM402、H3U和上位机C#ModebusTcp通讯

 七、H3U读写测试

1、读寄存器测试

读123个存器,从D1300到D1422

汇川AM402、H3U和上位机C#ModebusTcp通讯

2、写寄存器测试

写寄存器,单个寄存器写操作

汇川AM402、H3U和上位机C#ModebusTcp通讯

八、工程下载连接

1、AM402测试程序

汇川AM402、H3U和上位机C#ModebusTcp通讯

 分别是Winform程序PLC程序,PLC程序是AM402工程

https://download.csdn.net/download/panjinliang066333/87523222

2、H3U测试程序

aaa文件夹是PLC测试程序

汇川AM402、H3U和上位机C#ModebusTcp通讯

 https://download.csdn.net/download/panjinliang066333/87606437

 文章来源地址https://www.toymoban.com/news/detail-433312.html

到了这里,关于汇川AM402、H3U和上位机C#ModebusTcp通讯的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • LabVIEW编写上位机控制汇川PLC H5U和伺服运动,海康威视相机视觉对位,实现全面的自动化控制

    LabVIEW编的上位机控制汇川PLCH5U和汇川伺服运动,海康威视相机视觉对位,LabVIEW通过网口控制汇川H5U和Ethercat伺服,LabVIEW需要装视觉 和DSC模块。 因给的是LabVIEW和PLC源码,项目里有LabVIEW上位机,PLC下位机,ethercat伺服,相机对位,涉及面比较全,这套学会的话,就可以接一般

    2024年04月14日
    浏览(35)
  • 【西门子PLC S7-200smart与汇川变频器通过通讯控制】

    一,变频器通讯设置部分 先查看汇川变频器的使用说明书,将FD组“通讯参数设置”设置好对应波特率,数据格式,本机地址,通讯协议 FD-00 波特率设置   0:300bps 1:600bps 2:1200bps 3:2400bpd 4:4800bps 5:9600bps9:115200bps FD-01 数据格式    1:偶校验  2:奇校验  3:无校验 FD-02 本机地

    2024年02月04日
    浏览(73)
  • C#上位机:TCP通讯实例

    本文主要是提供一个TCP通讯的Demo。有时候上位机需要通过TCP来进行文件与数据传输,相对于基础的IO与串口,TCP的传输内容可能更加复杂,本文尽量从多个角度来给出示例。 关于上位机的搭建与通讯我们已经有以下几个部分可供参考: C#上位机:串口通讯 C#上位机:Modbus R

    2024年01月16日
    浏览(24)
  • C# 机器视觉工控通讯------发那科机器人上位机通讯

    C#  采用发那科Robot Interface 中间库和机器人控制柜通过网络通讯,主要功能如下: 3 读取发那科机器人DO值 4 写发那科机器人DO值

    2024年02月12日
    浏览(94)
  • Qt开发上位机建立BLE通讯

    最近在做一个具有低功耗蓝牙 BLE 通讯功能的Windows上位机软件,在网上学习了许多 BLE 相关的知识、看了许多相关博客并参考了官方例程后总结出了使用Qt建立 BLE 通讯的步骤,附带相关源码,分享给网友 我使用的 Qt 版本是5.15,使用的 CMake 构建项目。 整体开发使用的 IDE 是

    2024年02月08日
    浏览(46)
  • Qt开发上位机软件建立经典蓝牙通讯

    之前做了一个具有经典蓝牙通讯功能的Windows上位机软件,在网上学习了相关博客以及参考了官方经典蓝牙例程之后,总结出了使用Qt建立经典蓝牙通讯的步骤,附带相关源码,作为分享 我使用的 Qt 版本是5.15,使用的 CMake 构建项目。 整体开发使用的 IDE 是 Qt Creator ,采用的方

    2023年04月17日
    浏览(36)
  • 上位机与PLC:ModbusTCP通讯之数据类型转换

    从PLC读取的数值,不管是读正负整数还是正负浮点数,读取过来后都会变成UInt16,也就是Ushort类型 前请提要:Int32是32位,ushort是16位,byte是8位 (1)使用原因 向PLC的地址读取数据,PLC向地址写入32位整数,数值为100,但Modbus传输走的是16位,因此无法直接把数值展示到页面上

    2024年02月03日
    浏览(46)
  • C#上位机开发目录

    C#上位机序列1: 多线程(线程同步,事件触发,信号量,互斥锁,共享内存,消息队列) C#上位机序列2: 同步异步(async、await) C#上位机序列3: 流程控制(串行,并行,混合) C#上位机序列4: 动画效果(模拟PLC设备运行) C#上位机序列5: 三菱通信(FX-3U SerialOverTcp) C#上位机序列

    2024年02月09日
    浏览(41)
  • 上位机与欧姆龙PLC的Fins tcp通讯

    参考1:(147条消息) 欧姆龙PLC的FinsTCP协议_weixin_37700863的博客-CSDN博客_欧姆龙fins协议tcp   参考2:(147条消息) FinsTCP协议报文详细分析_常哥说编程的博客-CSDN博客_fins协议 参考3:(147条消息) 欧姆龙FINS通讯命令实例详解_搬砖dog的博客-CSDN博客_欧姆龙fins 上述文档中有部分描述错误

    2024年02月11日
    浏览(51)
  • 上位机(Ubuntu)与下位机(Arduino)通讯控制机器人前轮转角

     实现基础:1、上位机、下位机通讯;2、ROS读取前轮转角传感器速度 ​​​​​​​​​​​​​​上位机系统Ubuntu 20.04与下位机arduino UNO通讯_可见一班的博客-CSDN博客 读取拉线位移传感器(RS485协议)的ROS驱动包_可见一班的博客-CSDN博客 方案一:判断了旋转方向就向下位

    2024年02月13日
    浏览(46)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包