DGUS 第一代K600+屏有一个专门的modbus内核程序; T5系列的屏要实现标准的modbus RTU协议通信,需要通过OS程序来实现,因此T5系列的屏要具备以下条件: 1、要支持OS程序;
2、有除了串口2外的其他串口引出。
首先到迪文官网下载或者联系客服拿一下T5 MODBUS文件—V7的文件资料,里面有modbus使用配置开发文档、OS源程序等。
一、Modbus的屏上配置
T5 Modbus的屏上规划地址是从0XE000开始配置,不同于DGUS第一代屏是从0X5000开始,因此可通过22.bin字库文件0X1C000~0X1FFFF的16KB空间大小来定义Modbus运行参数; 或者通过 T5 OS直接访问0XE000~0XFFFF的8KW变量空间来定义Modbus运行参数。 其中Modbus参数配置定义如下:
其中,0XE000~0XE007是基础通信参数设置,从0XE008后是modbus指令配置,每条指令占用8个变量地址。 首先启动modbus协议0XE000为5A A5,然后根据设置好波特率、串口模式、主从机模式等,而波特率是0XE002地址1位定点小数,譬如设置为115200,那么就把0XE002地址的值设置为1152,即是0X0480。
在0XE000~0XE007配置好基本通信参数后,就配置Modbus指令,是从0X1C010~0X1FFFF,最多可配置1023条指令,两条指令之间可以连续也可以间隔若干条指令地址。 每条指令是16个字节,第一个字节是一个标志位,配5A时表明指令有效,接着配置的是设备地址、指令,读写长度根据当前实际读取情况来配置,指令等待时间是最长等待时间,若设置为500MS,在500MS内,若没有收到应答,就会跳过当前这条指令,轮训下一条指令; 接着是3个配置模式: 1、0X0000表所有页面下均执行当前的指令, 2、0X0001表指定页面下才执行当前指令, 3、0X0002表仅在指定的VP地址变为5A时才执行当前指令,若一些参数仅在特定页面下查询或者修改下发指令给主板,那么尽量使用0X0001和0X0002模式,因为0X0000模式下会均执行这条指令,这样如果指令多,就会增加数据传输的负担,轮训效率减慢,那么就可以配置01模式,在一些特定页面时才下发,或者02模式,若参数改变,再先一个地址里赋值为5A,从而实现只当变量值改变后才下发,而不是没有改变也下发,提高通信效率;后面就是配置屏上的VP地址和MODBUS设备地址,通过这两个地址的配置,从而绑定了屏跟主板的数据交互,屏上的VP地址和modbus地址的数据交互,把屏上的VP地址值发送给modbus地址,或者把modbus地址的值读取回来放在VP地址里。
二、Modbus master模式下的指令代码
注意:
1、 Modbus的位(线圈)变量是按照LSB定义的,而T5平台modbus是按照MSB定义;
2、 0XE000~0XE007的参数为主从机通用,Modbus通信不启动时,0XE000~0XFFFF变量可以任意使用规划以及串口任意使用,不过启动后,要按照对应格式来配置相应的参数;
3、 单次最多可读写90个字,若设定读写数据长度大于上限,则会自动跳过该条指令;
4、 禁止将读写数据在VP空间的起始地址以及起始地址+数据长度大于0XDFFF,否则将视为无效指令;
三、22.bin文件配置说明
1、确保系统配置为上电加载22号文件初始化,第0X08的第5位配置为1;
2、根据规定来配置T5 变量地址0XE000~0XFFFF的值,对应22号文件的地址是0X1C000~0X1FFFF;
3、若为主机模式,配置好0X1C000开始的16字节接口参数内容后,指令配置范围是从0X1C010~0X1FFFF开始配置;如若屏是从机,那么值配置0X1C000开始的16字节接口参数即可;
主机模式22文件配置 从机模式22文件配置 若想快速定位配置的空间地址0X1C000~0X1FFFF,那可点击跳转行,如下:
四、拷录文件
在22文件配置好modbus指令后,那么就把22文件和os代码放到DWIN_SET文件夹里拷进去屏即可实现MODBUS通信。
|