昆仑通触摸屏MCGS脚本驱动开发工具使用指导手册程

上传人:工**** 文档编号:435428 上传时间:2017-02-23 格式:PDF 页数:44 大小:1.51MB
返回 下载 相关 举报
昆仑通触摸屏MCGS脚本驱动开发工具使用指导手册程_第1页
第1页 / 共44页
昆仑通触摸屏MCGS脚本驱动开发工具使用指导手册程_第2页
第2页 / 共44页
昆仑通触摸屏MCGS脚本驱动开发工具使用指导手册程_第3页
第3页 / 共44页
昆仑通触摸屏MCGS脚本驱动开发工具使用指导手册程_第4页
第4页 / 共44页
昆仑通触摸屏MCGS脚本驱动开发工具使用指导手册程_第5页
第5页 / 共44页
点击查看更多>>
资源描述

《昆仑通触摸屏MCGS脚本驱动开发工具使用指导手册程》由会员分享,可在线阅读,更多相关《昆仑通触摸屏MCGS脚本驱动开发工具使用指导手册程(44页珍藏版)》请在金锄头文库上搜索。

1、北京昆仑通态自动化软件科技有限公司北京昆仑通态自动化软件科技有限公司北京昆仑通态自动化软件科技有限公司北京昆仑通态自动化软件科技有限公司- 1 -脚本驱动脚本驱动脚本驱动脚本驱动 V2.0 使用指导手册使用指导手册使用指导手册使用指导手册版本号版本号版本号版本号:0.1www.PLC北京昆仑通态自动化软件科技有限公司北京昆仑通态自动化软件科技有限公司北京昆仑通态自动化软件科技有限公司北京昆仑通态自动化软件科技有限公司- 2 -第一章第一章第一章第一章 新脚本驱动说明新脚本驱动说明新脚本驱动说明新脚本驱动说明一一一一脚本驱动适用范围脚本驱动适用范围脚本驱动适用范围脚本驱动适用范围1.脚本驱动适用

2、的版本脚本驱动适用的版本脚本驱动适用的版本脚本驱动适用的版本A. MCGS 嵌入式组态软件;版本号:6.5(01.0010)注:此版本以上为新版本,以下为旧版本B. MCGS 通用版的定制版组态软件C. MCGS 网络版的定制版组态软件2.脚本驱动适用的设备脚本驱动适用的设备脚本驱动适用的设备脚本驱动适用的设备A. 独立板卡设备B. 串口通信设备3.脚本驱动适用的协议脚本驱动适用的协议脚本驱动适用的协议脚本驱动适用的协议二二二二脚本驱动兼容性脚本驱动兼容性脚本驱动兼容性脚本驱动兼容性1.旧版本脚本驱动兼容新版本组态软件2.新版本脚本驱动不兼容旧版本的组态软件,旧版本组态软件无法识别新版本脚本驱

3、动三三三三脚本驱动新增内容脚本驱动新增内容脚本驱动新增内容脚本驱动新增内容1. 脚本驱动新增功能脚本驱动新增功能脚本驱动新增功能脚本驱动新增功能新增加生成向导功能,具体参照第三章内容。2. 脚本驱动新增函数脚本驱动新增函数脚本驱动新增函数脚本驱动新增函数(1)数据解析函数数据解析函数数据解析函数数据解析函数1.!SvrGetByteFromByteArr(ByRef ByteArr, start, ByRef n, Flag)2.!SvrGetShortFromByteArr(ByRef ByteArr, start, ByRef n, Flag)3.!SvrGetIntFromByteArr

4、(ByRef ByteArr, start, ByRef n, Flag)4.!SvrGetSingleFromByteArr(ByRef ByteArr, start, ByRef x, Flag)5.!SvrGetByteFromHexStr(str, ByRef n, Flag)6.!SvrGetShortFormHexStr(str, ByRef n, Flag)7.!SvrGetIntFromHexStr(str, ByRef n, Flag)8.!SvrGetSingleFromHexStr(str, ByRef x, Flag)(2)数据校验函数数据校验函数数据校验函数数据校验函

5、数1.!SvrByteArraySum(ByRef ByteArr, start, length)2.!SvrStrSum(str, Flag)3.!SvrByteArrayXOR(ByRef ByteArr, start, length)4.!SvrStrXOR(str, Flag)5.!SvrStrModbusCRC(ByRef ByteArr, start, length)6.!SvrStrModbusLRC(str, start, length)www.PLC北京昆仑通态自动化软件科技有限公司北京昆仑通态自动化软件科技有限公司北京昆仑通态自动化软件科技有限公司北京昆仑通态自动化软件科技

6、有限公司- 3 -7.!OpenLog()8.!CloseLog()(3)字节数组操作函数字节数组操作函数字节数组操作函数字节数组操作函数1.!HStr2HByre(str, arByte)2.!HByte2HStr(arByte, str)www.PLC北京昆仑通态自动化软件科技有限公司北京昆仑通态自动化软件科技有限公司北京昆仑通态自动化软件科技有限公司北京昆仑通态自动化软件科技有限公司- 4 -第二章第二章第二章第二章 基础概念讲解基础概念讲解基础概念讲解基础概念讲解一一一一通讯协议通讯协议通讯协议通讯协议1.ACSII 码通讯协议码通讯协议码通讯协议码通讯协议(字符型协议字符型协议字符型

7、协议字符型协议)通讯信息按照 ASCII 码方式解析得到的参数信息称为 ASCII 码通讯。比如:主站接收到从站发送的 4 个字符:0x31 0x34 0x2E 0x36,用 ASCII 码表示为 14.6。2.HEX 通讯协议通讯协议通讯协议通讯协议(字节数组协议字节数组协议字节数组协议字节数组协议)通讯信息按照十六进制方式解析得到的参数信息称为十六进制通讯。比如:主站接收到从站发送的 4 个字符:0x31 0x34 0x2E 0x36,用 HEX 表示为 0x31342E363.ASCII 码通讯与码通讯与码通讯与码通讯与 HEX 通讯的区别通讯的区别通讯的区别通讯的区别1)ASCII 码

8、通讯传送的字符能清楚的了解发送命令和接收信息,但是传送的信息速度量少;十六进制通讯发送的字符信息速度量大,但是发送命令和接收信息不明了。2)ASCII 码的通讯帧 1 个字占 4 个字符,而 HEX 的通讯帧 1 个字占 2 个字符。如:发送 0x1427信息, ASCII 码发送 4 个字符: 0x31 0x34 0x32 0x37, 而 HEX 只需要发送 2 个字符: 0x14 0x27。二www.PLC北京昆仑通态自动化软件科技有限公司北京昆仑通态自动化软件科技有限公司北京昆仑通态自动化软件科技有限公司北京昆仑通态自动化软件科技有限公司- 5 -第三章第三章第三章第三章 向导使用说明向

9、导使用说明向导使用说明向导使用说明一一一一完全适用向导的协议完全适用向导的协议完全适用向导的协议完全适用向导的协议1. ASCII 码协议码协议码协议码协议,多条命令通讯示例多条命令通讯示例多条命令通讯示例多条命令通讯示例1.1 步骤步骤步骤步骤 1:协议分析协议分析协议分析协议分析通讯命令通讯命令通讯命令通讯命令 1:模仿模仿模仿模仿 ADAM4018 协议协议协议协议,协议格式如下协议格式如下协议格式如下协议格式如下:发送命令:#xxr帧头:长 1 个字符,固定为#地址:固定长 2 个字符帧尾:长 1 个字符,为回车接收命令:#+xxx.xx+xxx.xx+xxx.xx+xxx.xx+xx

10、x.xx+xxx.xx+xxx.xx+xxx.xxr帧头:长 1 个字符,固定为#数据体:共 8 个数据体,每个数据体固定长 7 个字符,按 ASCII 码方式解析帧尾:长 1 个字符,为回车模拟数据:发送命令 1:#01r接收命令 1:#+11.111+22.222+33.333+44.444+55.555+66.666+77.777+88.888r通讯命令通讯命令通讯命令通讯命令 2:自己定义自己定义自己定义自己定义,解析数据非等长通讯协议解析数据非等长通讯协议解析数据非等长通讯协议解析数据非等长通讯协议,分两种情况分两种情况分两种情况分两种情况:数据长度已知数据长度已知数据长度已知数据长

11、度已知;数据长度未知数据长度未知数据长度未知数据长度未知。下面以下面以下面以下面以数据长度未知数据长度未知数据长度未知数据长度未知,数据之间用分隔符分离的协议数据之间用分隔符分离的协议数据之间用分隔符分离的协议数据之间用分隔符分离的协议,协议格式如下协议格式如下协议格式如下协议格式如下:发送命令:#xxxxxxr帧头:长 1 个字符,固定为#,参与校验地址:固定长 2 个字符,参与校验校验:长 2 个字符,累加和校验结束符号:长 1 个字符,固定为回车接收命令:#xxAA,BBB,CCCC,DDDDD,EEEE,FFF,GG,HHHHxxr帧头:长 1 个字符,固定为#数据体:8 个数据体,以

12、“, ”分隔校验:长 2 个字符,累加和校验结束符号:长 1 个字符,固定为回车模拟数据:发送命令:#0184r接收命令:#11,222,3333,44444,5555,666,77,8888E3rwww.PLC北京昆仑通态自动化软件科技有限公司北京昆仑通态自动化软件科技有限公司北京昆仑通态自动化软件科技有限公司北京昆仑通态自动化软件科技有限公司- 6 -1.2 步骤步骤步骤步骤 2:新建工程进入向导新建工程进入向导新建工程进入向导新建工程进入向导新建工程后进入新建工程模式,如图 3-1-1-1 所示。图 3-1-1-11.选择“使用向导新建工程” ,则进入向导界面,如图 3-1-1-2 所示

13、。2.选择“不使用向导新建工程” ,流程和原来一样,直接生成示例脚本。图 3-1-1-2设置脚本驱动的名称和注释内容整个脚本配置分为 4 个步骤,前一个步骤不执行,不允执行下个步骤www.PLC北京昆仑通态自动化软件科技有限公司北京昆仑通态自动化软件科技有限公司北京昆仑通态自动化软件科技有限公司北京昆仑通态自动化软件科技有限公司- 7 -1.3 步骤步骤步骤步骤 3:配置驱动属性配置驱动属性配置驱动属性配置驱动属性图 3-1-1-31. 添加属性,添加除“设备地址”和“通讯延时”以外的属性,当所添加属性的数据类型选择枚举型时,属性范围处填写枚举量,并用“;”隔开,如图 3-1-1-4 所示。2

14、. 删除属性,对多余的属性进行删除,其中“设备地址”和“通讯延时”为默认属性,不允许删除。3. 设置属性,修改设置已添加的属性。图 3-1-1-4www.PLC北京昆仑通态自动化软件科技有限公司北京昆仑通态自动化软件科技有限公司北京昆仑通态自动化软件科技有限公司北京昆仑通态自动化软件科技有限公司- 8 -1.4 步骤步骤步骤步骤 4:配置通道配置通道配置通道配置通道图 3-1-1-51. 添加通道,可进行批量添加操作。2. 删除通道,对多余的通道进行删除,可批量删除(按住 Ctrl 键,选择要删除的通道,点击“删除通道”按钮即可) ,其中“通讯状态”为默认通道,不允许删除。3. 设置通道,修改

15、设置已添加的通道,设置通道中不能修改通道个数。www.PLC北京昆仑通态自动化软件科技有限公司北京昆仑通态自动化软件科技有限公司北京昆仑通态自动化软件科技有限公司北京昆仑通态自动化软件科技有限公司- 9 -1.5 步骤步骤步骤步骤 5:配置通讯帧配置通讯帧配置通讯帧配置通讯帧图 3-1-1-65.1 添加收发通讯帧添加收发通讯帧添加收发通讯帧添加收发通讯帧根据协议分析知,2 组通讯帧结构信息配置分别如图 3-1-1-7,图 3-1-1-8 所示。图 3-1-1-7www.PLC北京昆仑通态自动化软件科技有限公司北京昆仑通态自动化软件科技有限公司北京昆仑通态自动化软件科技有限公司北京昆仑通态自动

16、化软件科技有限公司- 10 -图 3-1-1-8www.PLC北京昆仑通态自动化软件科技有限公司北京昆仑通态自动化软件科技有限公司北京昆仑通态自动化软件科技有限公司北京昆仑通态自动化软件科技有限公司- 11 -5.2 设置收发通讯帧设置收发通讯帧设置收发通讯帧设置收发通讯帧图 3-1-1-9对于 ASCII 码通讯帧的数据体设置主要有以下几种情况:1. 无特别属性,数据内容为可见 ASCII 字符,如图图 3-1-1-10 所示。图 3-1-1-101.进入设置数据属性画面,设置每个数值的属性2.设置过的选项,将显示设置内容和相应的属性3.命令预浏功能,直观的查看收发命令的格式数据类型:ASC

17、II 字符数据数据长度:1 字符数据内容:#数据属性:无当此数据体参与校验时,需要选择。www.PLC北京昆仑通态自动化软件科技有限公司北京昆仑通态自动化软件科技有限公司北京昆仑通态自动化软件科技有限公司北京昆仑通态自动化软件科技有限公司- 12 -2. 无特别属性,数据内容为不可见 ASCII 字符,如图图 3-1-1-11 所示。图 3-1-1-113.数值不确定的数据体,配置“设备属性”中的某个属性获得其值,如图图 3-1-1-12 所示。图 3-1-1-12数据类型:字节数据HEX 格式数据长度:1 字节,用 2 个字符表示数据内容:0D,注意一定以 HEX 格式填写,无空格数据属性:

18、无注释:提供 ASCII 表,可以方便的直接选择不可见的 ASCII 字符数据类型:ASCII 字符数据数据长度:2 字符数据内容:无数据属性:设备属性中的设备地址对于相同的数据体,设置好一个后,其他可选择默认设置,设置与前一个相同的参数www.PLC北京昆仑通态自动化软件科技有限公司北京昆仑通态自动化软件科技有限公司北京昆仑通态自动化软件科技有限公司北京昆仑通态自动化软件科技有限公司- 13 -4. 数据解析1)可知长度的解析,如图 3-1-1-13 所示。图 3-1-1-132)未知长度的解析,如图 3-1-1-14 所示。图 3-1-1-14数据类型:ASCII 字符数据数据长度:1 字

19、符,此处数据长度为“解析数据间分隔符号”的长度数据内容:无数据属性:解析数据中的 ASCII 码数据未知长度,解析数据间分隔符号是“, ” 。数据类型:ASCII 字符数据数据长度:7 字符数据内容:无数据属性:解析数据中的 ASCII码数据可知长度www.PLC北京昆仑通态自动化软件科技有限公司北京昆仑通态自动化软件科技有限公司北京昆仑通态自动化软件科技有限公司北京昆仑通态自动化软件科技有限公司- 14 -5. 校验,如果命令中的数据都是确定的,那么可以直接计算出校验值,如图 3-1-1-15 所示。图 3-1-1-156. 预览功能,命令信息设置完之后,可点击“命令预览”查看命令格式,如图

20、 3-1-1-16 所示。图 3-1-1-167. 对于各属性同前一个的数据体,点击“默认设置”即可。1.此处需校验的数据是选择了“是否参与校验” 的数据体。2.可选框无效,如:即使不选择“帧头” ,它也参与校验。www.PLC北京昆仑通态自动化软件科技有限公司北京昆仑通态自动化软件科技有限公司北京昆仑通态自动化软件科技有限公司北京昆仑通态自动化软件科技有限公司- 15 -1.6 步骤步骤步骤步骤 6:配置预览配置预览配置预览配置预览在此预览通道和解析数据的匹配关系,并检查配置是否正确,如果正确就可以,完成配置生成驱动,否则不完成配置生成代码。图 3-1-1-17www.PLC北京昆仑通态自动

21、化软件科技有限公司北京昆仑通态自动化软件科技有限公司北京昆仑通态自动化软件科技有限公司北京昆仑通态自动化软件科技有限公司- 16 -1.7 步骤步骤步骤步骤 7:完成配置完成配置完成配置完成配置,进行调试进行调试进行调试进行调试1.代码的生成与编译。(1)配置都正确后,可以“完成配置”直接生成脚本代码,如图 3-1-1-18 所示。图 3-1-1-18(2)编译生成的代码。选择“调试”? “检查整个驱动”,若没有问题输出窗口会提示“设备编辑检查通过” ,如图 3-1-1-19 所示。图 3-1-1-192. 配置“串口参数” 。(1)创建虚拟串口,如图 3-1-1-20 所示,串口 COM2

22、和 COM3 虚拟串口。组建命令帧发送命令帧并接收数据,对接收数据进行校验对接收的数据进行解析,并设置通道值www.PLC北京昆仑通态自动化软件科技有限公司北京昆仑通态自动化软件科技有限公司北京昆仑通态自动化软件科技有限公司北京昆仑通态自动化软件科技有限公司- 17 -图 3-1-1-20(2)配置脚本驱动中的串口参数选择“设置”? “串口父设备配置”,配置串口参数,如图 3-1-1-21 所示。图 3-1-1-21(3)设置串口转发工具 SmartCom.exe。首先,设置串口,如图 3-1-1-22 所示。图 3-1-1-221.除串口号外,其他需要与脚本驱动中串口参数一致2.数据格式选择

23、 ASCIIwww.PLC北京昆仑通态自动化软件科技有限公司北京昆仑通态自动化软件科技有限公司北京昆仑通态自动化软件科技有限公司北京昆仑通态自动化软件科技有限公司- 18 -其次,设置模拟设备,串口设置完后,打开串口,选择“使能” ,添加收发帧,如图 3-1-1-23所示。图 3-1-1-23然后,将 2 组命令帧的模拟数据分别添加进去,选择启动,如图 3-1-1-24 所示。图 3-1-1-253. 进行调试。在脚本驱动中,选择“调试”? “定时通道采集”进行调试,如图 3-1-1-26 所示。www.PLC北京昆仑通态自动化软件科技有限公司北京昆仑通态自动化软件科技有限公司北京昆仑通态自动

24、化软件科技有限公司北京昆仑通态自动化软件科技有限公司- 19 -图 3-1-1-26www.PLC北京昆仑通态自动化软件科技有限公司北京昆仑通态自动化软件科技有限公司北京昆仑通态自动化软件科技有限公司北京昆仑通态自动化软件科技有限公司- 20 -2. HEX 码协议码协议码协议码协议,单条命令通讯示例单条命令通讯示例单条命令通讯示例单条命令通讯示例2.1 步骤步骤步骤步骤 1:协议分析协议分析协议分析协议分析通讯命令通讯命令通讯命令通讯命令:模仿模仿模仿模仿 ModbusRTU 协议协议协议协议,协议格式如下协议格式如下协议格式如下协议格式如下:发送命令: 从 4 区寄存器地址 0 开始,连续

25、读 8 个 16 位无符号二进制地址:长 1BYTE,内容从属性“设备地址”中获得命令码:长 1BYTE,固定为 0x03起始地址:长 2BYTE,固定为 0x0000连续元件个数:长 2BYTE,固定为 0x0008校验:长 2BYTE,CRC 校验接收命令:地址 :长 1BYTE,内容不重要命令码长 1BYTE,内容预计为 0x03回收字节长度:长 1BYTE,内容预计为 0x10数据体 00:长 2BYTE,内容由回收数据解析获得,解析方式为 16 位无符号二进制数据数据体 01:长 2BYTE,内容由回收数据解析获得,解析方式为 16 位无符号二进制数据数据体 02:长 2BYTE,内

26、容由回收数据解析获得,解析方式为 16 位无符号二进制数据数据体 03:长 2BYTE,内容由回收数据解析获得,解析方式为 16 位无符号二进制数据数据体 03:长 2BYTE,内容由回收数据解析获得,解析方式为 16 位无符号二进制数据数据体 05:长 2BYTE,内容由回收数据解析获得,解析方式为 16 位无符号二进制数据数据体 06:长 2BYTE,内容由回收数据解析获得,解析方式为 16 位无符号二进制数据数据体 07:长 2BYTE,内容由回收数据解析获得,解析方式为 16 位无符号二进制数据校验:长 2BYTE,内容不重要www.PLC北京昆仑通态自动化软件科技有限公司北京昆仑通态

27、自动化软件科技有限公司北京昆仑通态自动化软件科技有限公司北京昆仑通态自动化软件科技有限公司- 21 -2.2 步骤步骤步骤步骤 2:新建工程进入向导新建工程进入向导新建工程进入向导新建工程进入向导新建工程后进入新建工程模式,如图 3-1-2-1 所示。图 3-1-2-11. 选择“使用向导新建工程” ,则进入向导界面,如图图 3-1-2-2 所示。2. 选择“不使用向导新建工程,流程和原来一样,直接生成示例脚本。图 3-1-2-2www.PLC北京昆仑通态自动化软件科技有限公司北京昆仑通态自动化软件科技有限公司北京昆仑通态自动化软件科技有限公司北京昆仑通态自动化软件科技有限公司- 22 -2.

28、3 步骤步骤步骤步骤 3:配置驱动属性配置驱动属性配置驱动属性配置驱动属性图 3-1-2-31. 添加属性,添加除“设备地址”和“通讯延时”以外的属性,当所添加属性的数据类型选择枚举型时,属性范围处填写枚举量,并用“;”隔开,如图 3-1-2-4 所示。2. 删除属性,对多余的属性进行删除,其中“设备地址”和“通讯延时”为默认属性,不允许删除。3. 设置属性,修改设置已添加的属性。图 3-1-2-4www.PLC北京昆仑通态自动化软件科技有限公司北京昆仑通态自动化软件科技有限公司北京昆仑通态自动化软件科技有限公司北京昆仑通态自动化软件科技有限公司- 23 -2.4 步骤步骤步骤步骤 4:配置通

29、道配置通道配置通道配置通道图 3-1-2-51. 添加通道,可进行批量添加。2. 删除通道,对多余通道进行删除,可批量删除,其中“通讯状态”为默认通道,不允许删除。3. 设置通道,修改设置已添加的通道,设置通道中不能修改通道个数。www.PLC北京昆仑通态自动化软件科技有限公司北京昆仑通态自动化软件科技有限公司北京昆仑通态自动化软件科技有限公司北京昆仑通态自动化软件科技有限公司- 24 -2.5 步骤步骤步骤步骤 5:配置通讯帧配置通讯帧配置通讯帧配置通讯帧图 3-1-2-65.1 添加收发通讯帧添加收发通讯帧添加收发通讯帧添加收发通讯帧根据协议分析知,通讯帧结构信息配置分别如图 3-1-2-

30、7 所示。图 3-1-2-7www.PLC北京昆仑通态自动化软件科技有限公司北京昆仑通态自动化软件科技有限公司北京昆仑通态自动化软件科技有限公司北京昆仑通态自动化软件科技有限公司- 25 -5.2 设置收发通讯帧设置收发通讯帧设置收发通讯帧设置收发通讯帧图 3-1-2-8对于 HEX 格式命令帧的数据体设置主要有以下几种情况:(注释:对于 HEX 格式的命令帧,其各帧数据体的数据类型均为字节数据HEX 格式)1. 无特别属性,如图 3-1-2-9 所示。图 3-1-2-92.数值不确定的数据体,配置“设备属性”中的某个属性获得其值,如图 3-1-2-10 所示。www.PLC北京昆仑通态自动化

31、软件科技有限公司北京昆仑通态自动化软件科技有限公司北京昆仑通态自动化软件科技有限公司北京昆仑通态自动化软件科技有限公司- 26 -图 3-1-2-103. 解析属性数据,数据内容为不需要填写,由回收数据解析获得,如图 3-1-2-11 所示。图 3-1-2-114. 校验,如果命令中的数据都是确定的,那么可以直接计算出校验值,如图 3-1-2-12 所示。www.PLC北京昆仑通态自动化软件科技有限公司北京昆仑通态自动化软件科技有限公司北京昆仑通态自动化软件科技有限公司北京昆仑通态自动化软件科技有限公司- 27 -图 3-1-2-125. 预览功能,命令信息设置完之后,可点击“命令预览”查看命

32、令格式,如图 3-1-2-13 所示。图 3-1-2-13www.PLC北京昆仑通态自动化软件科技有限公司北京昆仑通态自动化软件科技有限公司北京昆仑通态自动化软件科技有限公司北京昆仑通态自动化软件科技有限公司- 28 -2.6 步骤步骤步骤步骤 6:配置预览配置预览配置预览配置预览在此预览通道和解析数据的匹配关系,并检查配置是否正确,如果正确就可以,完成配置生成驱动,否则不完成配置生成代码。图 3-1-2-14www.PLC北京昆仑通态自动化软件科技有限公司北京昆仑通态自动化软件科技有限公司北京昆仑通态自动化软件科技有限公司北京昆仑通态自动化软件科技有限公司- 29 -2.7 步骤步骤步骤步骤

33、 7:完成配置完成配置完成配置完成配置1.代码的生成与编译。(1)配置都正确后,可以“完成配置”直接生成脚本代码,如图 3-1-2-15 所示。图 3-1-2-15(2)编译生成的代码。选择“调试”? “检查整个驱动”,若没有问题输出窗口会提示“设备编辑检查通过” ,如图 3-1-2-16 所示。图 3-1-2-162. 配置“串口参数” 。(1)创建虚拟串口,如图 3-1-2-17 所示,串口 COM2 和 COM3 虚拟串口。组建命令帧发送命令帧并接收数据,对接收数据进行校验对接收的数据进行解析,并设置通道值www.PLC北京昆仑通态自动化软件科技有限公司北京昆仑通态自动化软件科技有限公司

34、北京昆仑通态自动化软件科技有限公司北京昆仑通态自动化软件科技有限公司- 30 -图 3-1-2-17(2)配置脚本驱动中的串口参数选择“设置”? “串口父设备配置”,配置串口参数,如图 3-1-2-18 所示。图 3-1-2-18(3)设置 Modbus 串口转发工具 mbslave.exeA. 打开 mbslave.exe,选择“Connection”? “Connect”进行设置,如图 3-1-2-19 所示。图 3-1-2-19www.PLC北京昆仑通态自动化软件科技有限公司北京昆仑通态自动化软件科技有限公司北京昆仑通态自动化软件科技有限公司北京昆仑通态自动化软件科技有限公司- 31 -

35、B. 选择“Setup”? “Slave Definition”进行设置,如图 3-1-2-20 所示。图 3-1-2-20C. 选择“Connection”? “Quick connect”运行,并设置各地址数据。3. 进行调试。在脚本驱动中,选择“调试”? “定时通道采集”进行调试,如图 3-1-2-22 所示。图 3-1-2-22www.PLC北京昆仑通态自动化软件科技有限公司北京昆仑通态自动化软件科技有限公司北京昆仑通态自动化软件科技有限公司北京昆仑通态自动化软件科技有限公司- 32 -二二二二不完全适用向导不完全适用向导不完全适用向导不完全适用向导1.步骤步骤步骤步骤 1:协议分析协

36、议分析协议分析协议分析设备命令设备命令设备命令设备命令:模仿三菱模仿三菱模仿三菱模仿三菱 Q 系列串口协议系列串口协议系列串口协议系列串口协议,协议格式如下协议格式如下协议格式如下协议格式如下:发送命令:从 D 寄存器地址 0 开始,连续读 8 个 16 位无符号二进制帧头:长 1 个字符,固定为 ENQ 即 0x05帧识别号:长 2 个字符,固定为 FB本地站号:长 2 个字符,内容从设备属性中获得上位站号(即设备地址) :长 2 个字符,内容从设备属性中获得命令码:长 1 个字符,固定为 2寄存器地址:长 2 个字符,固定为 D*起始地址:长 6 个字符,固定为 000000软元件个数:长

37、 4 个字符,固定为 0008累加和校验:长 2 个字符,通过自动计算获得接收命令:帧头:长 1 个字符,内容不重要帧识别号:长 2 个字符,内容不重要本地站号:长 2 个字符,内容不重要上位站号:长 2 个字符,内容不重要数据体 0007:长 4 个字符,内容由回收数据解析获得,解析方式为 16 位无符号二进制数据帧尾:长 1 个字符,内容不重要校验:长 2 个字符,内容不重要分析分析分析分析:由协议格式所知,脚本驱动向导无法生成此协议格式,但是此协议可以由脚本驱动实现,因此,我们先通过脚本驱动向导生成框架,然后在生成的代码中修改即可。www.PLC北京昆仑通态自动化软件科技有限公司北京昆仑

38、通态自动化软件科技有限公司北京昆仑通态自动化软件科技有限公司北京昆仑通态自动化软件科技有限公司- 33 -2.步骤步骤步骤步骤 2:根据向导生成模板根据向导生成模板根据向导生成模板根据向导生成模板向导使用步骤在此不在介绍,主要说明需注意的几部分:1.配置属性配置属性配置属性配置属性由协议知, 本地站号也需要通过设备属性获得, 因此设备属性添加“本地站号” , 如图 3-2-1 所示。图 3-2-12.配置通讯帧配置通讯帧配置通讯帧配置通讯帧A. 配置通讯帧结构信息,如图 3-2-2 所示。图 3-2-2www.PLC北京昆仑通态自动化软件科技有限公司北京昆仑通态自动化软件科技有限公司北京昆仑通

39、态自动化软件科技有限公司北京昆仑通态自动化软件科技有限公司- 34 -B. 设置收发通讯帧,如图 3-2-3 所示。图 3-2-3注释:1.由于“本地站号”用向导无法生成,因此需要在代码中修改;帧识别号是固定值,可在向导中添加(合在帧头中) ,也可在代码中修改。2.由于接收命令只需要各部分的数据长度,因此:帧头为帧头+帧识别号;地址为本地站号+设备地址www.PLC北京昆仑通态自动化软件科技有限公司北京昆仑通态自动化软件科技有限公司北京昆仑通态自动化软件科技有限公司北京昆仑通态自动化软件科技有限公司- 35 -3.步骤步骤步骤步骤 3:修改向导生成的代码修改向导生成的代码修改向导生成的代码修改

40、向导生成的代码1. 根据向导生成的代码如下所示根据向导生成的代码如下所示根据向导生成的代码如下所示根据向导生成的代码如下所示。2. 根据步骤根据步骤根据步骤根据步骤 2 所知所知所知所知,组帧部分代码需要修改组帧部分代码需要修改组帧部分代码需要修改组帧部分代码需要修改,添加添加添加添加“本地站号本地站号本地站号本地站号”和和和和“帧识别号帧识别号帧识别号帧识别号” ,修改完代码如下所修改完代码如下所修改完代码如下所修改完代码如下所示示示示。www.PLC北京昆仑通态自动化软件科技有限公司北京昆仑通态自动化软件科技有限公司北京昆仑通态自动化软件科技有限公司北京昆仑通态自动化软件科技有限公司- 3

41、6 -4.步骤步骤步骤步骤 4:进行调试进行调试进行调试进行调试调试过程与 ASCII 码协议的调试相同,此处不再介绍。www.PLC北京昆仑通态自动化软件科技有限公司北京昆仑通态自动化软件科技有限公司北京昆仑通态自动化软件科技有限公司北京昆仑通态自动化软件科技有限公司- 37 -第四章第四章第四章第四章 新增函数使用说明新增函数使用说明新增函数使用说明新增函数使用说明一一一一数据解析函数数据解析函数数据解析函数数据解析函数1.!SvrGetByteFromByteArr(ByRef ByteArr, start, ByRef n, Flag)函数意义: 将字节数组 ByteArr 中从 st

42、art 位置开始的内容输出到变量 n 中, 输出格式为 1 个字节整数,字节数组位置计数从 1 开始。返 回 值:整型,判断输出是否正常。0:正常小于 0:错误,具体意义如下:-1:起始索引 start 小于 1;-2:起始索引 start 大于数组上限;-3:字节数组长度不足;-4:n 不是整型变量;-5:其他错误。参数:ByteArr:传址型,字节型数组。start:整型,输出的首位置,从 1 开始。n:传址型,长整型。Flag:长整型,解析方式0:8 位无符号;1:8 位有符号;2:8 位 BCD 码。实例: !SvrGetByteFromByteArr(BA, 2, A, 1),字节数

43、组为:00 01 02 03 04 05 06 07 08 09 00,则A=1。2.!SvrGetShortFromByteArr(ByRef ByteArr, start, ByRef n, Flag)函数意义: 将字节数组 ByteArr 中从 start 位置开始的内容输出到变量 n 中, 输出的格式为 2 字节整型,字节数组位置计数从 1 开始。返 回 值:整型,判断是输出是否正常:0:正常;小于 0:错误,具体意义如下:-1:启始索引 start 小于 1;-2:启始索引 start 大于数组上限;-3:字节数组长度不足;-4:n 不是整型变量;-5:其他错误。参数:ByteArr

44、:传址型,字节型数组。start:整型,输出的首位置,从 1 开始。n:传址型,长整型。Flag:长整型,解析方式0:16 位无符号;1:16 位有符号;2:16 位 BCD 码。实例:!SvrGetByteFromByteArr (BA, 2,A, 1),字节数组为:00 01 02 03 04 05 06 07 08 09 00 00, 则A=513。www.PLC北京昆仑通态自动化软件科技有限公司北京昆仑通态自动化软件科技有限公司北京昆仑通态自动化软件科技有限公司北京昆仑通态自动化软件科技有限公司- 38 -3.!SvrGetIntFromByteArr(ByRef ByteArr, s

45、tart, ByRef n, Flag)函数意义:将字节数组 ByteArr 中从 start 位置开始的内容输出到变量 n 中,输出的格式为 4 字节整型,字节数组位置计数从 1 开始。返 回 值:整型,判断是输出是否正常:0:正常;小于 0:错误,具体意义如下:-1:启始索引 start 小于 1;-2:启始索引 start 大于数组上限;-3:字节数组长度不足;-4:n 不是整型变量;-5:其他错误。参数:ByteArr:传址型,字节型数组。start:整型,输出的首位置,从 1 开始。n:传址型,长整型。Flag:长整型,解析方式0:32 位无符号;1:32 位有符号;2:32 位 B

46、CD 码。实例:!SvrGetByteFromByteArr (BA, 2, A, 1),字节数组为:00 01 02 03 04 05 06 07 08 09 00 00,则 A=513。4.!SvrGetSingleFromByteArr(ByRef ByteArr, start, ByRef x, Flag)函数意义:将字节数组 ByteArr 中从 start 位置开始的内容输出到变量 x 中,输出的格式为 4 字节数值型,字节数组位置计数从 1 开始。返 回 值:整型,判断是输出是否正常:0:正常;小于 0:错误,具体意义如下:-1:启始索引 start 小于 1;-2:启始索引 s

47、tart 大于数组上限;-3:字节数组长度不足;-4:n 不是浮点型变量;-5:其他错误。参数:ByteArr:传址型,字节型数组。start:整型,输出的首位置,从 1 开始。n:传址型,长整型。Flag:长整型,对应 4 种解码次序0:“”;1:“”;2:“”;3:“”。实例:!SvrGetByteFromByteArr (BA, 1, x, 3),字节数组为:00 00 08 40 04 05 06 07 08 09 00 00,则A=4.05.!SvrGetByteFromHexStr(str, ByRef n, Flag)函数意义:获得将 HEX 表示的字符数据的内容输出到变量 x

48、中,输出的格式为 1 字节数值型,从头取www.PLC北京昆仑通态自动化软件科技有限公司北京昆仑通态自动化软件科技有限公司北京昆仑通态自动化软件科技有限公司北京昆仑通态自动化软件科技有限公司- 39 -2 个字符转换成一个字节 HEX 值返 回 值:整型,判断是输出是否正常:0:正常;小于 0:错误,具体意义如下:-1:解析字符长度不足,至少长度为 2 字符-2:解析字符长度一定为偶数个-3:解析字符长度大于 2 个,只取左边 2 字符解析-4:变量类型,不是整形-5:其他错误参数:str,字符数据。n,传址型,长整型;Flag, 长整型,解析方式0:8 位无符号;1:8 位有符号;2:8 位

49、 BCD 码实例:! SvrGetByteFromHexStr (str,n,0),str 为:“0102030405060708” 则 n = 16.!SvrGetShortFormHexStr(str, ByRef n, Flag)函数意义:获得将 HEX 表示的字符数据的内容输出到变量 x 中,输出的格式为 2 字节数值型,从头取4 个字符转换成 2 个字节短整型值返 回 值:整型,判断是输出是否正常:0:正常;小于 0:错误,具体意义如下:-1:解析字符长度不足,至少长度为 2 字符-2:解析字符长度一定为偶数个-3:解析字符长度大于 2 个,只取左边 2 字符解析-4:变量类型,不是

50、整形-5:其他错误参数:str,字符数据。n,传址型,长整型;Flag, 长整型,解析方式0:16 位无符号;1:16 位有符号;2:16 位 BCD 码实例:!SvrGetShortFromHexStr (str,n,0),str 为:“0102030405060708” 则 n = 5137.!SvrGetIntFromHexStr(str, ByRef n, Flag)函数意义:获得将 HEX 表示的字符数据的内容输出到变量 x 中,输出的格式为 4 字节数值型,从头取8 个字符转换成 4 个字节整型值返 回 值:整型,判断是输出是否正常:0:正常;小于 0:错误,具体意义如下:-1:解

51、析字符长度不足,至少长度为 2 字符-2:解析字符长度一定为偶数个www.PLC北京昆仑通态自动化软件科技有限公司北京昆仑通态自动化软件科技有限公司北京昆仑通态自动化软件科技有限公司北京昆仑通态自动化软件科技有限公司- 40 -3:解析字符长度大于 2 个,只取左边 2 字符解析-4:变量类型,不是整形-5:其他错误参数:str,字符数据。n,传址型,长整型;Flag, 长整型,解析方式0:32 位无符号;1:32 位有符号;2:32 位 BCD 码实例:! SvrGetIntFromHexStr (str,n,0),str 为:“10200000030405060708” 则 n = 513

52、8.!SvrGetSingleFromHexStr(str, ByRef x, Flag)函数意义:获得将 HEX 表示的字符数据的内容输出到变量 x 中,输出的格式为 4 字节数值型,从头取8 个字符转换成 4 个字节单精度浮点值返 回 值:整型,判断是输出是否正常:0:正常;小于 0:错误,具体意义如下:-1:解析字符长度不足,至少长度为 2 字符-2:解析字符长度一定为偶数个-3:解析字符长度大于 2 个,只取左边 2 字符解析-4:变量类型,不是浮点型变量-5:其他错误参数:str,字符数据。x,传址型,数值型;Flag, 长整型,对应 4 种解码次序0:“”;1:“”;2:“”;3:

53、“”实例:! SvrGetSingleFromHexStr (str,x,3),str 为:“000008400102030405060708” 则 x = 4.0二二二二数据校验函数数据校验函数数据校验函数数据校验函数1.!SvrByteArraySum(ByRef ByteArr, start, length)函数意义:从数组中 start 索引开始,连续 length 个字节,按求和方式计算返回校验结果返 回 值:整型,返回正确的校验值/判断是输出是否正常:=0:校验结果;小于 0:错误,具体意义如下:-1:启始索引 start 小于 1-2:启始索引 start 大于数组上限-3:校验

54、数组长度小于等于零-4:字节数组长度不足-5:其他错误参数:ByteArr,传址型,字节型数组。start,长整型,检验数据的启始字节在数组中www.PLC北京昆仑通态自动化软件科技有限公司北京昆仑通态自动化软件科技有限公司北京昆仑通态自动化软件科技有限公司北京昆仑通态自动化软件科技有限公司- 41 -length, 长整型,连续校验数据的个数实例:n = !SvrByteArraySum(ByteArr,1,4) ByteArr 为:00 01 02 03 04 05 06 07 则 n = 62.!SvrStrSum(str, Flag)函数意义:返 回 值:字符型,返回正确的校验值/判断

55、是输出是否正常:错误返回值:-1:校验字符串长度为 0-2:校验的字符串长度必须为偶数参数:str,字符型,需要校验数据Flag,长整型,0:按 2 个字符形成 1BYTE HEX 值进行校验;1:直接按 ASCII 字符值进行校验。实例:strRe = !SvrStrSum(str,0) str 为:“0001020304050607”则 strRe = “06”3.!SvrByteArrayXOR(ByRef ByteArr, start, length)函数意义:从数组中 start 索引开始,连续 length 个字节,按异或方式计算返回校验结果返 回 值:整型,返回正确的校验值/判断

56、是输出是否正常:=0:校验结果;小于 0:错误,具体意义如下:-1:启始索引 start 小于 1-2:启始索引 start 大于数组上限-3:校验数组长度小于等于零-4:字节数组长度不足-5:其他错误参数:ByteArr,传址型,字节型数组。start,长整型,检验数据的启始字节在数组中length, 长整型,连续校验数据的个数实例:n = !SvrByteArraySum(ByteArr,1,4) ByteArr 为:00 01 02 03 04 05 06 07 则 n = 04.!SvrStrXOR(str, Flag)函数意义:返 回 值:字符型,返回正确的校验值/判断是输出是否正常

57、:错误返回值:-1:校验字符串长度为 0-2:校验的字符串长度必须为偶数参数:str,字符型,需要校验数据Flag,长整型,0:按 2 个字符形成 1BYTE HEX 值进行校验;1:直接按 ASCII 字符值进行校验www.PLC北京昆仑通态自动化软件科技有限公司北京昆仑通态自动化软件科技有限公司北京昆仑通态自动化软件科技有限公司北京昆仑通态自动化软件科技有限公司- 42 -实例:strRe = !SvrStrSum(str,0) str 为:“0001020304050607”则 strRe = “00”5.!SvrStrModbusCRC(ByRef ByteArr, start, le

58、ngth)函数意义: 从数组中 start 索引开始,连续 length 个字节,按异或方式计算返回校验结果返 回 值:整型,返回正确的校验值/判断是输出是否正常:=0:校验结果;小于 0:错误,具体意义如下:-1:启始索引 start 小于 1-2:启始索引 start 大于数组上限-3:校验数组长度小于等于零-4:字节数组长度不足-5:其他错误参数:ByteArr,传址型,字节型数组。start,长整型,检验数据的启始字节在数组中length, 长整型,连续校验数据的个数实例:n = ! SvrStrModbusLRC (ByteArr,1,4)ByteArr 为:010300000008

59、 则 n = 0x0c446.!SvrStrModbusLRC(str, start, length)函数意义:返 回 值:字符型,返回正确的校验值/判断是输出是否正常:错误返回值:-1:启始索引 start 小于 1-2:启始索引 start 大于数组上限-3:校验数组长度小于等于零-4:字节数组长度不足参数:str,字符型,需要校验数据start,长整型,检验数据的启始字节在数组中length, 长整型,连续校验数据的个数实例:strRe = !SvrStrModbusLRC (str,2,12) str 为:“:010300000004”则 strRe = “F8”7.!OpenLog(

60、)函数意义:启动日志功能,PC 上自动在 C 盘根目录生成 LOG 文件,TPC 上自动在 HARDDISK 盘根目录生成 LOG 文件。返 回 值:开关型,0:成功 -1 失败参数:无实例:!OpenLog()8.!CloseLog()函数意义:关闭日志功能返 回 值:开关型,0:成功 -1 失败www.PLC北京昆仑通态自动化软件科技有限公司北京昆仑通态自动化软件科技有限公司北京昆仑通态自动化软件科技有限公司北京昆仑通态自动化软件科技有限公司- 43 -参数:无实例:!CloseLog()三三三三字节数组操作函数字节数组操作函数字节数组操作函数字节数组操作函数1.!HStr2HByre(s

61、tr, arByte)函数意义: 将字符串转为字符数组返 回 值:=0:转换字节个数小于 0:错误,具体意义如下:-1:没有定义数组 arByte-2:arByte 不是数组类型-3:str 必须为偶数个-4:转换错误参数:str,字符型,需要校验数据arByte,经过转换后的字节数组实例:!HStr2Hbyte(str,arByte), str = ”123456” 则转换后 arByte 值分别为 0x31 0x32 0x33 0x340x35 0x362.!HByte2HStr(arByte, str)函数意义: 将字符串转为字符数组返 回 值:字符型,返回正确的校验值/判断是输出是否正

62、常:正确:返回校验值错误:返回空字符串参数:str,字符型,需要校验数据arByte,经过转换后的字节数组实例: !Hbyte2HStr (arByte,str) , arByte 值分别为 0x35 0x36 0x37 0x38 0x39 , 则转换后 str = ”56789”www.PLC北京昆仑通态自动化软件科技有限公司北京昆仑通态自动化软件科技有限公司北京昆仑通态自动化软件科技有限公司北京昆仑通态自动化软件科技有限公司- 44 -第五章第五章第五章第五章 故障分析故障分析故障分析故障分析一一一一无法通讯无法通讯无法通讯无法通讯1.检查串口父设备参数是否正确2.检查串口是否被其他程序占

63、用3.检查通讯电缆是否正确连接4.检查设备,使用厂家测试程序确保通讯正常5.检查设备属性设置是否与实际设备属性一致6.适当延长“通讯等待时间”7.读取地址是否超出范围二二二二通讯有跳变通讯有跳变通讯有跳变通讯有跳变1.检查父设备串口校验位是否正确2.适当延长“通讯等待时间”3.设备断电,重新上电,使初始化设备4.通讯电缆太长,做短距离测试5.现场干扰太大,避免周围环境干扰6.通讯信号变弱,使用有源 RS232/485 模块7.读取数据超出范围(添加某通道后,导致通讯状态变为非 0)三三三三通讯正常通讯正常通讯正常通讯正常,数据不正确数据不正确数据不正确数据不正确1.新建工程测试驱动2.检测通道是否连接变量3.检测工程是否对数据进行处理四四四四检测驱动检测驱动检测驱动检测驱动出现上述错误都无法解决,则需要检测驱动是否正确。1.截获数据帧查看是否与协议相同i.检查帧结构是否与命令一致ii.对于需要校验的协议,检查是否不参与校验的数据体参与了校验iii.对于不完全适用向导的协议,检查修改后的代码组帧是否正确2.检查读写串口函数是否正确i.检查接收的数据长度是否正确ii.检查结束符是否正确3.检查校验部分是否正确i.检查接收的数据长度是否与读写函数中的相同ii.检查结束符是否与读写函数中的相同iii.若自己额外添加校验函数,则检查是否正确4.检查数据解析部分是否正确www.PLC

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 机械/制造/汽车 > PLC/工控编程

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号