使用Modbus-rtu协议与步科Kinco的GL070进行通讯(RS485)

        折腾了两天才终于实现了基本的通讯功能,有关这个公司显示屏的使用资料实在是太少了,网上基本没有教程,写个文章留给有需要的人,也给自己留个复习材料。

        涉及Modbus协议的部分我就不多说了,目前我也还没仔细了解过,本文专注实现功能。

一、相关软件下载

        我使用的屏幕型号是GL070,官方提供了Kinco DTools软件来对屏幕进行编辑,以下是下载连接:

软件—Kinco步科icon-default.png?t=N7T8https://www.kinco.cn/download/dsoft.html        目前测试我是用电脑与屏幕进行通讯,所以需要用到串口助手,我用的是野火串口调试助手,可以用自己习惯的软件来进行收发测试

野火多功能调试助手上位机icon-default.png?t=N7T8https://doc.embedfire.com/products/link/zh/latest/deskapp/ebf_trace_tool.html

二、相关资料的查阅

        在软件内部带有用户说明书,需要的可以自行查看

三、屏幕当主机,电脑当从机(屏幕使用COM0)

        这部分的测试参考用户手册中14.5.2的(2)02功能码应用

3.1创建工程

        文件→新建工程,选择相对应的HMI型号

         根据1选择好通讯协议后点击添加,在2处进行相对应的设置,然后点击完成

        这个是创建好的

 3.1.1另一种连接方法

        如果在创建工程时没有添加设备,那么只有一个显示屏在工程中

        在左下角选择PLC,找到Modbus系列,将Modbus RTU Extend拖入到框架中

        在通讯连接,将串口拖到框架中,线的两端连接两个设备,这里我是用COM0进行通讯

        双击屏幕图标可以对屏幕进行设置,设置如下

        双击PLC可以修改其站号,我这里保持默认值1

3.2添加控件

        右键屏幕,选择编辑组态,进入屏幕设计界面

         在元件库中把 位状态指示灯 拖出来进行相对应的设置

        有关地址类型的选择,可以参考用户手册14.5.1,应该是地址类型要与功能码相对应

3.3下载程序与测试 

        连接好屏幕的数据线并供电

        下载程序 

         也不知道为什么是空白的,不显示那个灯

         根据帮助→通信连接说明,找到公口的定义,我使用的是COM0,所以黄线接USB转485上的B,绿线接A,灰线接地

        打开串口调试助手设定好串口配置就能够收到消息了,如果没有消息或者消息不对就要检查一下接线盒串口的配置

       (注意发送格式) 发送01 02 01 01 60 48,屏幕显示绿灯,发送01 02 01 00 A1 88变红,和用户手册一致

四、屏幕当从机,电脑当主机(使用COM0) 

        这部分要实现的测试包括两个:1是向屏幕里的数值控件写数值,2是读取数值控件的值

4.1创建工程

        这里从简,具体可以看3.1创建工程

        创建新的工程,并将Modbus RTU Slave(这个是真的反直觉,我一直想把屏幕设置为从机,奈何找半天不知道在哪设置,问了师兄才知道)拖出来和屏幕完成连线,完成相对应的设置,这里我把屏幕的设备号设置为了255

4.2添加控件

        地址为1的数值元件进行写入测试

        地址为11的数值元件进行读取测试

         对于地址类型的选择,可以参考用户手册的14.5.3,LW会被映射为4X寄存器,那么这个地址的寄存器就能通过03、06、16功能码进行修改

4.3写入测试 

        屏幕的烧录程序和接线跳过,具体参考3.3下载程序与测试 

        我这里写入地址类型为4X,地址为1的寄存器,所以用06功能码

        消息格式参考如下

        站号即屏幕从机号为255,对应FFH

        功能码06H

        地址高位00H,低位01H

        写入值,我要写入666,那么高位就是02H,低位9AH

        CRC校验值的计算16进制(CRC16)(MODBUS RTU通讯)校验码在线计算器 (23bei.com)

        

        CRC的高位为4CH,低位为DFH

        那么完整的消息就是FF 06 00 01 02 9A 4C DF

        使用串口助手发送消息,可以看到屏幕的数值控件数值发生了变化

4.4读取测试

        点击屏幕的数值控件可以修改其显示值,我这里把控件的值修改成100

        我这里读取地址类型为4X,地址为11的寄存器,所以用03功能码

        发送消息格式如下:

    

        站号即屏幕从机号为255,对应FFH

        功能码03H

        地址高位00H,低位0BH

        读取N个寄存器,我要读取11这一个,那么高位就是00H,低位01H

        CRC校验一下,高位E0H,低位16H

        完整消息为FF 03 00 0B 00 01 E0 16

        通过串口助手发送,屏幕应答,应答消息格式为:

站号FF 功能码03 字节数02 数据高位00  数据低位64 CRC高位90 CRC低位7B

64H就是100了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值