当前位置:首页 > 行业发展 > 正文

威纶通触摸屏宏指令,统合应用,与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的通讯数据线。



2.熟悉硬件的通讯协议。

熟悉或不熟悉的硬件,

在使用时我们都会习惯性的准备对应的手册,

比如接线时,我们会参考硬件的用户手册。

编程时,我们会下载编程手册。

这里我们要实现串口通讯,

所以我们也会准备硬件的通讯手册。

这里我们准备了PLC的通讯手册,

里面介绍有通讯协议相关知识。

翻阅手册,我们知道了PLC每个通讯帧的格式,

如下图。

帧头帧尾固定为0X02,0X03;PLC站号,

命令码占一个字节,分高低两部分。

校验码也占一个字节,分高低两部分,

为前面数据相加之和。


翻阅通讯手册,我们还知道了命令码的具体支持哪些,

如下图,截取了永宏PLC支持的部分命令码,

我们这里会选择使用两命令码作演示。

41,控制PLC的启停,

46,读取PLC连续多个寄存器资料。


1)控制PLC的启停(指令41)

翻阅通讯手册,我们也能找到每个指令的解释与实例。

如下两图,为命令码41的格式与实例,

控制码为0表示停止PLC,为1表示启动PLC。

根据这些信息,我们就可以编写出控制PLC启停的帧,

以及PLC回应的帧我们也能提取出信息,具体代码在下面。

PLC回应的帧我们这里不核对校验码,

简单通过判断错误码来判断PLC是否成功执行指令。

错误码为0表示PLC执行成功。

如下图指令格式中,错误码在第5个字节。



我们就可以写出控制PLC启动与停止指令。

charc[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所支持的寄存器列表,

我们要演示的是读取WX0000一个字的内容。

也就是读取到的状态。


我们就可以写出读取PLC的WX0000的指令

charcFrame[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.编写代码与调试。

通过通讯手册获取协议信息,

就可以通过协议的约定来编写宏代码。

宏代码的编写是对我们前面小节介绍全部宏指令的一个综合应用。

我们可以多练习再借助宏输入窗口,熟悉使用威纶宏指令。

课前,我已在硬件上调试通过了下面的代码,可以参阅练习。






最新文章