QQ登录

只需一步,快速开始

威纶通触摸屏宏指令,统合应用,与PLC自由通讯

[ 复制链接 ]
想学习威纶宏指令的朋友,
可以关注前面的其他小节。
我们知道市面上硬件有非常多,
威纶不可能支持所有硬件的通讯,
所以它提供了宏指令让我们自己来实现。
学会宏可以极大的提升我们的触摸屏编程能力。
这小节我们以一个通讯实例结束威纶宏编程教程。

任何两个硬件通讯前,无线的还是有线的,都必须建立连接。
一般触摸屏通过以太网网络或串口通讯与其他硬件相连。
这里我们以威纶触摸屏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自由通讯

威纶通触摸屏宏指令,统合应用,与PLC自由通讯

威纶通触摸屏宏指令,统合应用,与PLC自由通讯

2.熟悉硬件的通讯协议。
熟悉或不熟悉的硬件,
在使用时我们都会习惯性的准备对应的手册,
比如接线时,我们会参考硬件的用户手册。
编程时,我们会下载编程手册。
这里我们要实现串口通讯,
所以我们也会准备硬件的通讯手册。
这里我们准备了PLC的通讯手册,
里面介绍有通讯协议相关知识。
翻阅手册,我们知道了PLC每个通讯帧的格式,
如下图。
帧头帧尾固定为0X02,0X03;PLC站号,
命令码占一个字节,分高低两部分。
校验码也占一个字节,分高低两部分,
为前面数据相加之和。

威纶通触摸屏宏指令,统合应用,与PLC自由通讯

威纶通触摸屏宏指令,统合应用,与PLC自由通讯


翻阅通讯手册,我们还知道了命令码的具体支持哪些,
如下图,截取了永宏PLC支持的部分命令码,
我们这里会选择使用两命令码作演示。
41,控制PLC的启停,
46,读取PLC连续多个寄存器资料。

威纶通触摸屏宏指令,统合应用,与PLC自由通讯

威纶通触摸屏宏指令,统合应用,与PLC自由通讯

1)控制PLC的启停(指令41 )
翻阅通讯手册,我们也能找到每个指令的解释与实例。
如下两图,为命令码41的格式与实例,
控制码为0表示停止PLC,为1表示启动PLC。
根据这些信息,我们就可以编写出控制PLC启停的帧,
以及PLC回应的帧我们也能提取出信息,具体代码在下面。
PLC回应的帧我们这里不核对校验码,
简单通过判断错误码来判断PLC是否成功执行指令。
错误码为0表示PLC执行成功。
如下图指令格式中,错误码在第5个字节。

威纶通触摸屏宏指令,统合应用,与PLC自由通讯

威纶通触摸屏宏指令,统合应用,与PLC自由通讯

威纶通触摸屏宏指令,统合应用,与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自由通讯

威纶通触摸屏宏指令,统合应用,与PLC自由通讯
下面是PLC所支持的寄存器列表,
我们要演示的是读取WX0000一个字的内容。
也就是读取X0.0到x0.15的状态。

威纶通触摸屏宏指令,统合应用,与PLC自由通讯

威纶通触摸屏宏指令,统合应用,与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自由通讯

威纶通触摸屏宏指令,统合应用,与PLC自由通讯

威纶通触摸屏宏指令,统合应用,与PLC自由通讯

威纶通触摸屏宏指令,统合应用,与PLC自由通讯

威纶通触摸屏宏指令,统合应用,与PLC自由通讯

威纶通触摸屏宏指令,统合应用,与PLC自由通讯

回复

使用道具 举报

快速回复 返回列表 客服中心 搜索