gxworks2使用指令手册_威纶通触摸屏宏指令,统合应用,与PLC自由通讯

本文介绍了如何使用威纶通触摸屏GXWorks2的宏指令,通过自由通讯协议与台湾永宏FBs系列PLC进行通讯。通过详细步骤,包括数据线制作、通讯协议解析、宏指令编写,展示了如何实现设备间的连接和控制PLC的启停及读取寄存器资料。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

想学习威纶宏指令的朋友,

可以关注前面的其他小节。

我们知道市面上硬件有非常多,

威纶不可能支持所有硬件的通讯,

所以它提供了宏指令让我们自己来实现。

学会宏可以极大的提升我们的触摸屏编程能力。

这小节我们以一个通讯实例结束威纶宏编程教程。

任何两个硬件通讯前,无线的还是有线的,都必须建立连接。

一般触摸屏通过以太网网络或串口通讯与其他硬件相连。

这里我们以威纶触摸屏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的通讯数据线。

ce3d10f7d01e2d7c4276cac1fb436a67.png
4920967f5300ed5d6f825c8f6a67866f.png

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

熟悉或不熟悉的硬件,

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

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

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

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

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

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

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

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

如下图。

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

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

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

为前面数据相加之和。

7289cbff636804fb0f0299596dd9e468.png

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

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

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

41,控制PLC的启停,

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

c9fd25270c87c6f1bc251794fa07b846.png

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

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

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

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

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

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

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

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

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

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

efb06855fcbdd7c86dfc49886789d778.png
024352a7d5ef2e42e2d6ba73ba6a6b8a.png

我们就可以写出控制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个字节,其后紧跟数据。

5dd582a306abcef170d83c727e51fcde.png
9a0ec6a7245f7035100ec1f71924ab58.png

下面是PLC所支持的寄存器列表,

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

也就是读取X0.0到x0.15的状态。

dd4206b41b16fbba8518e560561315fb.png

我们就可以写出读取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.编写代码与调试。

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

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

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

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

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

ed21a90690c73a18042558c4d2285bbe.png
d88156b6fa76e6249968b6f2c0ff9a35.png
03b2ac00715ae86558703dda5cfc27ad.png
6245e8ef5567354168ef3849d4d76230.png
44851f313e384d5c0014531cb0d9c207.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值