世纪星标准Modbus协议驱动揭秘〔二〕.docx
-
资源ID:73285827
资源大小:17.42KB
全文页数:5页
- 资源格式: DOCX
下载积分:9.8金币
快捷下载
![游客一键下载](/images/hot.gif)
会员登录下载
微信登录下载
三方登录下载:
微信扫一扫登录
友情提示
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
|
世纪星标准Modbus协议驱动揭秘〔二〕.docx
世纪星标准Modbus协议驱动揭秘二zhaofang导语:在工业自动化发展的进程中,Modbus成为了工业控制系统中的一种通用协议。由于该协议的简单且通用,得到诸多仪表厂商的支持,成为仪表及智能终端的一项工业标准,得到广泛的应用。在工业自动化发展的进程中,Modbus成为了工业控制系统中的一种通用协议。由于该协议的简单且通用,得到诸多仪表厂商的支持,成为仪表及智能终端的一项工业标准,在工业监控系统中得到广泛的应用。通过此协议,控制器互相之间、控制器经过网络例如以太网和其它设备之间能够进行通信。它的开放性、可扩大性和标准化使不同厂商生产的控制设备能够简单可靠地连成工业网络,进行系统的集中监控,进而成为最流行的协议之一。同样,世纪星组态软件也提供支持上位机和下位设备进行Modbus通信的驱动程序,使用户能够方便地使用装有世纪星软件的上位机和下位的设备进行通信。1、Modbus设备选择进入世纪星设备列表PLC大类中的标准Modbus协议,能够看到我们有5种Modbus设备,分别是ModbusRTU十进制地址、ModbusRTU十六进制地址、ModbusASCII十进制地址、ModbusASCII十六进制地址以及ModbusTCP/IP十进制地址。首先,Modbus的三种通信方式:ModbusRTU、ModbusASCII以及ModbusTCP/IP世纪星都全面支持,用户能够根据设备的通讯讲明进行相应的选择。其次,Modbus设备十进制和十六进制的区分除了方便一部分用户的同时,在设备选择的方面也给另一部分的用户造成困扰,针对这个问题我会给大家两点解释,第一:同样的一个设备,假如用十进制地址的Modbus驱动能连接得上的话,用十六进制地址的Modbus驱动肯定也没问题,确定这点之后,我们提早料想周全的贴心功能就不会在选择设备时给您造成困扰了。第二:Modbus协议已经成为工业控制系统中的一种通用协议,很多仪表厂商都采用Modbus协议与上位机进行通信,有些厂商协议的讲明文档中,采用十进制的寄存器地址讲明,如表1所示。而有些厂商采用十六进制的寄存器地址讲明,如表2所示。为避免用户在连接变量时再去做繁琐的十进制和十六进制的转化工作,我们将ModbusRTU以及ModbusASCII分别做成用十进制的寄存器地址连接变量的驱动和用十六进制的寄存器地址连接变量的驱动。举个例子假定表1表2中列出的寄存器支持03号功能码,对于表1这样的协议讲明方式,我们能够选择十进制的Modbus驱动,用4x10这个寄存器连接环境温度这个参数;而对于表2这样的协议讲明方式,我们能够选择十六进制的Modbus驱动,用4x000A这个寄存器连接环境温度参数。表一表二2.寄存器连接要正确连接一个寄存器,有三个关键信息要从协议讲明文档中获得:第一是该寄存器支持的功能码,第二是该寄存器的地址,第三是该寄存器的数据类型。1功能码世纪星是根据Modbus协议中的功能码来区别寄存器名称,详细信息如表3所述:表三在厂商所提供的协议讲明文档中,都会注明寄存器所支持的功能码,用户能够根据上述表格对世纪星里的寄存器进行选择。例如:支持03H功能码的就选择4x,支持01H功能码的就选择0x。2寄存器地址寄存器地址在协议讲明文档中都会比拟直观的列出,参看表1、表2,每个详细的参数都会对应一个寄存器地址,连接寄存器时只要将地址号连接在相应的寄存器名后面即可。3数据类型位寄存器的连接方式比拟单一,如图1所示。变量类型为I/O离散,数据类型为BIT,根据功能码选择寄存器名,并加上寄存器地址就能够正确连接该位寄存器。图一模拟量寄存器的连接方式就比拟多样化,如表4所示下面对于寄存器名和寄存器地址暂不进行讲明。表四表五主电机电压:变量类型选择I/O整数,数据类型选择LONG有符号32位整数;主电机电流:变量类型选择I/O实数,数据类型选择FLOAT我们的浮点数格式符合IEEE754标准;环境温度:变量类型选择I/O整数,数据类型选择UINT无符号16位整数;T1:变量类型选择I/O整数,数据类型选择INT有符号16为整数;T2:变量类型选择I/O整数,数据类型选择BCD16位BCD码;T3:变量类型选择I/O实数,数据类型为UINT或者INT,由于传送数据是实际值的100倍,所以在定义变量时需要做一个线性变换,如图2所示,使最大值IO为最大值的100倍,最小值IO是最小值的100倍,并在转换选项中选择线性转换就能够在工程中直接显示实际值;图二STATUS:变量类型选择I/O整数,数据类型选择UINT,需要在工程中对STATUS中的某个位进行显示和设置时,要使用世纪星中的BitTagname,BitNo和BitSet“Tagname,BitNo,Discrete_Value这两个函数,详细的使用方式能够参考世纪星中的函数讲明。今天给大家介绍了怎样选择Modbus设备以及怎样连接寄存器,对于标准的Modbus协议来讲,把握这些已经能够从设备中读出一个正确的数据,但有些厂家的Modbus协议在字节顺序以及功能码的使用方面和标准Modbus协议,是有一些小的出入,针对这种情况,我们的Modbus驱动也做了相应的调整,通过设置初始化字解决这个问题,其详细的设置方式我将会在下一篇介绍给大家,感谢您的关注!0