一、说明
MCGS(昆仑通态)组态软件原版Modbus驱动是无法通过画面组态调用宏来设置Modbus通信相关参数的,如:站号,波特率,数据位,停止位,校验位这些参数的。但是可以通过第三方定制版驱动来实现该功能,亲测有效。
二、屏幕做Mdobus主站时相关设置
通过新建一个简单测试工程来讲解如何使用该驱动程序提供的功能
下载安装第三方定制驱动程序。(点击下载)提取码:2mhr新建测试工程,并新建一个画面,画面布局如下然后在实时数据库里新建11个数值变量分别为nAddr、nBaudrate、nDatabit、nStopbit、nParity、nReturn和rAddr、rBaudrate、rDatabit、rStopbit、rParity。将组态画面左侧文本框依次关联nAddr、nBaudrate、nDatabit、nStopbit、nParity这几个变量,右侧标签依次关联rAddr、rBaudrate、rDatabit、rStopbit、rParity。
组态左侧设置按钮的按下脚本写入以下代码
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''设置设备1的设备地址,设置地址值为nAddr的值,nAddr为数值型变量。''''''''''''''''''''''''''''''''''''''''''''''''''''''''!SetDevice(设备1,6,"SetAddress(nAddr)")''''''''''''''''''''''''''''''''''''''''''''''''''''''''''设定设备1所在的父设备的串口参数,'nBaudrate为波特率,取值为(9600、14400、19200、38400等常见波特率的值)'nDatabit为数据位,取值为(7-七位,8-八位)'nStopbit为停止位,取值为(1-一位,2-两位)'nParity为校验位,取值为(0-无校验,1-奇校验,2-偶校验)'nReturn为返回值,取值为(0-设置成功,1-设置失败)'nBaudrate,nDatabit,nStopbit,nParity,nReturn均为数值型变量。'''''''''''''''''''''''''''''''''''''''''''''''''''''''''!SetDevice(设备1,6, "SetCommPara(nBaudrate,nDatabit,nStopbit,nParity,nReturn)")
组态右侧获取按钮的按下脚本写入以下代码
'''''''''''''''''''''''''''''''''''''''''''''''''获取设备1的设备地址,将值赋值给rAddr,rAddr为数值型变量。''''''''''''''''''''''''''''''''''''''''''''''''!SetDevice(设备1,6,"GetAddress(rAddr)")''''''''''''''''''''''''''''''''''''''''''''''''''获取设备1所在的父设备的串口参数,'rBaudrate为波特率,'rDatabit为数据位,'rStopbit为停止位,'rParity为校验位;'rBaudrate,rDatabit,rStopbit,rParity均为数值型变量。''''''''''''''''''''''''''''''''''''''''''''''''''!SetDevice(设备1,6, "GetCommPara(rBaudrate,rDatabit,rStopbit,rParity)")
设备组态
1.先添加通用串口父设备
2.然后添加用户定制设备(在安装该驱动成功后才有这个选项)
!!注意不要将这个设备和软件自带的设备搞混淆,可以双击该设备查看驱动位置来区分
在上边工程基础上同一串口父设备下添加数据转发设备,将设备1设置为初始工作状态为停止(因为定制设备是主站设备,开启会干扰从站设备的通讯)将上边工程的设置按钮的脚本改写为以下内容(由于设备1和设备2的父设备相同所以只需修改设置设备2的站号即可)三、屏幕当Modbus从站使用时设置方法
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''设置设备2的设备地址,设置地址值为nAddr的值,nAddr为数值型变量。''''''''''''''''''''''''''''''''''''''''''''''''''''''''!SetDevice(设备2,6,"SetAddress(nAddr)")''''''''''''''''''''''''''''''''''''''''''''''''''''''''''设定设备1所在的父设备的串口参数,'nBaudrate为波特率,取值为(9600、14400、19200、38400等常见波特率的值)'nDatabit为数据位,取值为(7-七位,8-八位)'nStopbit为停止位,取值为(1-一位,2-两位)'nParity为校验位,取值为(0-无校验,1-奇校验,2-偶校验)'nReturn为返回值,取值为(0-设置成功,1-设置失败)'nBaudrate,nDatabit,nStopbit,nParity,nReturn均为数值型变量。'''''''''''''''''''''''''''''''''''''''''''''''''''''''''!SetDevice(设备1,6, "SetCommPara(nBaudrate,nDatabit,nStopbit,nParity,nReturn)")
.将上边工程的获取按钮的脚本改写为以下内容(由于设备1和设备2的父设备相同所以只需修改设置设备2的站号即可)
'''''''''''''''''''''''''''''''''''''''''''''''''获取设备2的设备地址,将值赋值给rAddr,rAddr为数值型变量。''''''''''''''''''''''''''''''''''''''''''''''''!SetDevice(设备2,6,"GetAddress(rAddr)")''''''''''''''''''''''''''''''''''''''''''''''''''获取设备1所在的父设备的串口参数,'rBaudrate为波特率,'rDatabit为数据位,'rStopbit为停止位,'rParity为校验位;'rBaudrate,rDatabit,rStopbit,rParity均为数值型变量。''''''''''''''''''''''''''''''''''''''''''''''''''!SetDevice(设备1,6, "GetCommPara(rBaudrate,rDatabit,rStopbit,rParity)")
从站设置原理是:定制设备和从站设备在同一串口父设备下,通过定制驱动设置父串口设备的串口参数(波特率、数据位、停止位、校验位),从而实现从站所在串口的参数。
四、总结
本文只是简单介绍了如何通过用户定制设备驱动来实现通过触摸屏画面组态来设置MCGS触摸屏Modbus通讯相关参数,希望对您有帮助!