想学习威纶宏指令的朋友, 可以关注前面的其他小节。 我们知道市面上硬件有非常多, 威纶不可能支持所有硬件的通讯, 所以它提供了宏指令让我们自己来实现。 学会宏可以极大的提升我们的触摸屏编程能力。 这小节我们以一个通讯实例结束威纶宏编程教程。
任何两个硬件通讯前,无线的还是有线的,都必须建立连接。 一般触摸屏通过以太网网络或串口通讯与其他硬件相连。 这里我们以威纶触摸屏TK6071IP和台湾永宏可编程控制器FBs系列为例, 讲解如何通过自由通讯协议, 通过编写宏指令,让两个硬件实现通讯。 其实威纶是支持永宏PLC的,我们这里假设它不支持, 看下威纶触摸屏是如何与自己不支持的硬件通讯上的。 这个过程一般分为三步。
1.准备数据线。 某宝一般有定制版的,可以在上面买, 也可以查阅硬件手册,自己制作数据线。 如我们查阅的触摸屏与PLC的硬件手册, 得到通讯端口针的定义如下: 很明显, PLC通讯端口九针侧, 3为接收数据RxD, 2为发送数据TxS, 5为公共接地GND。 触摸屏通讯端口侧, 6为发送数据TxD, 9为接收数据RxD, 5为公共接地GND。 所以针脚3连6, 2连9,5连5, 就能做成一根屏与PLC的通讯数据线。
威纶通触摸屏宏指令,统合应用,与PLC自由通讯
威纶通触摸屏宏指令,统合应用,与PLC自由通讯
2.熟悉硬件的通讯协议。 熟悉或不熟悉的硬件, 在使用时我们都会习惯性的准备对应的手册, 比如接线时,我们会参考硬件的用户手册。 编程时,我们会下载编程手册。 这里我们要实现串口通讯, 所以我们也会准备硬件的通讯手册。 这里我们准备了PLC的通讯手册, 里面介绍有通讯协议相关知识。 翻阅手册,我们知道了PLC每个通讯帧的格式, 如下图。 帧头帧尾固定为0X02,0X03;PLC站号, 命令码占一个字节,分高低两部分。 校验码也占一个字节,分高低两部分, 为前面数据相加之和。
威纶通触摸屏宏指令,统合应用,与PLC自由通讯
翻阅通讯手册,我们还知道了命令码的具体支持哪些, 如下图,截取了永宏PLC支持的部分命令码, 我们这里会选择使用两命令码作演示。 41,控制PLC的启停, 46,读取PLC连续多个寄存器资料。
威纶通触摸屏宏指令,统合应用,与PLC自由通讯
1)控制PLC的启停(指令41 ) 翻阅通讯手册,我们也能找到每个指令的解释与实例。 如下两图,为命令码41的格式与实例, 控制码为0表示停止PLC,为1表示启动PLC。 根据这些信息,我们就可以编写出控制PLC启停的帧, 以及PLC回应的帧我们也能提取出信息,具体代码在下面。 PLC回应的帧我们这里不核对校验码, 简单通过判断错误码来判断PLC是否成功执行指令。 错误码为0表示PLC执行成功。 如下图指令格式中,错误码在第5个字节。
威纶通触摸屏宏指令,统合应用,与PLC自由通讯
威纶通触摸屏宏指令,统合应用,与PLC自由通讯
我们就可以写出控制PLC启动与停止指令。 char c[9] c[0] = 0x02 c[1] = '0' //0x30 c[2] = '1' //0x31 c[3] = '4' //0x34 c[4] = '1' //0x31 //0x30 为停止PLC指令, //0X31为启动PLC指令. c[5] = ‘0’ //c[6],c[7]为和校验码, //即前面数据相加c[6]为高字节, //c[7]为低字节。 c[6] c[7] c[8] = 0x03//帧尾
2)读取PLC连续多个寄存器资料(指令46 ) 翻阅通讯手册,我们也能找到指令46的解释与实, 如下两图。 读取的寄存器个数在第一个字节指定, 读取的起始寄存器地址紧跟其后, 传统6个字节表示单字寄存器, 传递7个字节表示双字寄存器, PLC支持的寄存器手册上也有介绍, 在后边有截图。 PLC回应帧格式里, 我们也能看出错误码在第5个字节,其后紧跟数据。
威纶通触摸屏宏指令,统合应用,与PLC自由通讯
威纶通触摸屏宏指令,统合应用,与PLC自由通讯
下面是PLC所支持的寄存器列表, 我们要演示的是读取WX0000一个字的内容。 也就是读取X0.0到x0.15的状态。
威纶通触摸屏宏指令,统合应用,与PLC自由通讯
我们就可以写出读取PLC的WX0000的指令 char cFrame[255] cFrame[0] = 0x02//帧头 cFrame[1] = 0x30//plc 站号 cFrame[2] = 0x31 cFrame[3] = 0x34//连续寄存器读取指令 cFrame[4] = 0x36 cFrame[5] = 0x30//读取1个寄存器 cFrame[6] = 0x31 cFrame[7] = 0x57//寄存器起始码 WX0000 cFrame[8] = 0x58 cFrame[9] = 0x30 cFrame[10] = 0x30 cFrame[11] = 0x30 cFrame[12] = 0x30 cFrame[13]//校验码 cFrame[14] cFrame[15] =0x03//帧尾
3.编写代码与调试。 通过通讯手册获取协议信息, 就可以通过协议的约定来编写宏代码。 宏代码的编写是对我们前面小节介绍全部宏指令的一个综合应用。 我们可以多练习再借助宏输入窗口,熟悉使用威纶宏指令。 课前,我已在硬件上调试通过了下面的代码,可以参阅练习。
威纶通触摸屏宏指令,统合应用,与PLC自由通讯
威纶通触摸屏宏指令,统合应用,与PLC自由通讯
威纶通触摸屏宏指令,统合应用,与PLC自由通讯
威纶通触摸屏宏指令,统合应用,与PLC自由通讯
威纶通触摸屏宏指令,统合应用,与PLC自由通讯
|