分享

一个触摸屏控制两个plc,并且两个plc也要互相通信,该怎么做出来?

 chzhmichzhmi 2020-03-21

这个问题在实际工控应用中很常见,是很常用的一种控制方式。

首先通讯第一步是要将硬件进行连接。

常见到的通过方式有RS232,RS485,以太网等。

不同厂家设计的硬件,其通讯方式是没有统一标准的。

所以问题的提出会比较含糊的,我们可以以485通讯作演示介绍。

因为经济型的硬件更多常见到的是rs232或者rs485通讯。

而rs232一般用于一对一的控制,所以如果硬件只有rs232端口的话。

我们会通过转换器,将rs232转换为rs485,或反向转换。

如下图,触摸屏如果只有rs232,可以通过转换器转换成rs485。

再与其他PLC等硬件连接。

如果你的PLC只有rs232端口,还得通过转换器再次转换回rs232.

如下图。

如果硬件都是rs485端口就不用这么麻烦了,可以省去转换器。

当然如果您的硬件比较高端,支持以太网通讯,直接搞个交换机,设置下IP,

通过触摸屏就能够很方便的读取不同PLC数据,再将数据进行交换。

硬件准备连接后就是程序编写。

在触摸屏上可以很方便地读写PLC数据,将数据交换输出到PLC。

可以根据自己手上触摸屏进行编写程序。

下图是威纶触摸屏的程序界面。事先程序里添加了一个永宏PLC硬件。

其站号设置为可以通过站号变量LW10000更改。

可以通过PLC站号选择寄存器来选择读写哪个PLC。

然后通过按钮控制指定PLC的寄存器如Y0.

如果想通过触摸屏的宏指令来实现的话,也是很方便的。

可以新建一个宏,设置每隔一秒周期执行。

宏代码如下

macro_command main()

bool b

//获取站号一PLC的X0状态

GetData(b, 'FATEK FB/FBs/B1/B1z Series', X, 1#0, 1)

//根据站号一PLC的X0状态设置站号二PLC的Y0状态

SetData(b, 'FATEK FB/FBs/B1/B1z Series', Y, 2#0, 1)

end macro_command

方法是很多的,可以根据自己手头的硬件的具体情况,

选择不同方法。

以上希望有帮到你,有错误请指正。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多