1、深度挖掘-台达 DOP 人机界面“一机多屏 ”的实现中达电通股份有限公司 PLC 产品处 王乃全前言:随着人机界面的发展及用户对高功能的追求,人机界面“一机多屏”的使用方式越来越频繁。本文用清晰的图示结合一个样例详细的说明台达 DOP 是如何实现“一机多屏”功能的。关键字:人机界面 宏指令问题的引出与解答:现在市面上很多的人机界面(HMI)都提供了方便的一台控制器连接两台或者更多人机的功能,也就是大家常说的“一机多屏” ,如 WeinView、Hitech 等都可以实现。台达的人机功能很强,但在 Screen Editor 编辑软件中并没有提供这样的功能。那么如果用户想使用“一机多屏”就没有办
2、法了吗?当然不是这样,台达人机很好的一个特点就是提供了 2 个通讯口,而且 2 个通讯口可以独立使用。这样,我们就可以用一个通讯口连接控制器,另一个通讯口连接第二台或者第三台触摸屏了。解决方法有了,下面我们就结合一个样例来看一看 DOP 是怎么做到的。系统图:如上面这样的系统图,我们可以用一个人机作为 Master HMI,其余若干个人机作为Slave HMI,分别为 2#、3#.。Master HMI 的 COM1 与一台 EH PLC 通过 RS232 连接,COM2 与各个 Slave HMI 通过 RS485 连接。这样,Master HMI 作为两条线路上的主站,负责交换两条线路上的
3、数据。本例我们采用两台 HMI 同一个 PLC 连接,所以将上面的系统图简化并作个变形,以形成我们熟悉的样子。两台人机直接通过 MODBUS ASCII 来连接。如下图:样例要实现的功能:1、 两台人同时显示 PLC 的数据变化。2、 当其中任意一台人机修改 PLC 寄存器的数值时,同时能在另一台人机上一起变化。3、 当一台人机切换画面时,另一台人机也会自动切换。功能分析与框图:DOP 有个很大的特点就是支持宏指令功能,所以这些功能都要依靠宏来实现。我们先设功能 1 中 PLC 用到的寄存器地址为 D200, D201。2#Slave HMI 与之对应的地址设为$109, $110,根据下表
4、DOP 内部与 MODBUS 的对应关系可以知道对应 MODBUS 的地址为W40110, W40111。然后在 Master HMI 中用 BMOV 指令将 D 区传送给$区就行了。Modbus address HMI 内部数据定义W40001 W41024 $0 $1023 内部缓存器W42001 W43024 $M0 $M1023 断电保持内部缓存器W44001 RCPNO 配方编号缓存器W45001 . RCP0 RCPn 配方缓存器B00001 B01024 $2000.0 $2063.15 内部缓存器(bit)B01025 B02048 $M200.0 $M263.15 断电保持内
5、部缓存器(bit)功能 2 要实现主从人机换画面同步,就要用【系统控制区】来帮忙了。设主从人机共用从机的 MODBUS 地址 W40100 来切换画面。功能 3 实现比较麻烦一点。关键是主从机都可以改变 PLC 中的数据。设 PLC 中的寄存器地址为 D100, D101。2#Slave HMI 与之相对应的地址是 W40010, W40011。我们的思路是这样:当 1#Master HMI 完成对 D100, D101 的数值输入的时候,触发一个标志位1#$101.0(1#表示 1#Master,2#表示 2#Slave HMI) 。在 1#backgroud 宏中检查$101 如果为1,就
6、 Call 子宏 2,在子宏 2 中用 BMOV 指令把 D100, D101 分为传送给 2W40010, 2#W40011 以达到数据同时改变。同时启动 D100, D101 的执行后宏,先做 200ms 延时,之后复位$101.0.同样的做法,当 2完成对 2#W40010, 2#W40011 数值输入后触发标志位 2#B00001。因为在 1#backgroud 宏的 IF 语句中不能直接使用 BasePort 或者 Link2 的地址,所以要先把2#B00001GET 到$100.0,之后在在 1#backgroud 宏中检查 $100 如果为 1,就 Call 子宏 1,在子宏 1
7、 中用 BMOV 指令把 2W40010, 2#W40011 分为传送给 D100, D101 以达到数据同时改变。同时启动 2W40010, 2#W40011 的执行后宏,先做 200ms 延时,之后复位2#B00001。三种功能实现的图示图下图所示:PLC 1#Master HMI 2#Slave HMI功能一图示功能二图示D 区内部宏$ 区2#W401001#主 HMI系统控制区LINK2 W401002#从 HMI系统控制区BASEPORT W40100功能三逻辑框图其中绿色表示在 2#Slave HMI 中执行的;桔色表示在 1#Master HMI 中执行的Screen Edito
8、r 软件的编写:上面我们做了大量的准备工作,建立方案、理清思路、建立方框图,最终还是要通过Screen Editor 来软件实现。下面我们就一步一步的编写软件。由于篇幅的限制,一些基本的软件操作就不在此文说明,本文只提到一些比较关键的点。1、1#Master HM 程序的编写:启动 Screen Editor 软件,建立一个新文件, 【设定模组参数】的设置如图:一般2#W40010 2#W40011写入写入后触发2#B00001 为 ON延时 200ms复位 2#B000011#$100.0=2#B000011#$100.0=ONCALL 1D100 D101写入写入后触发1#$101.0 为
9、 ON延时 200ms复位 1#$101.01#$101.0=ONCALL 2子宏 1D100=2#W40010D101=2#W40011子宏 22#W40010 =D1002#W40011= D101功能 2 要用到的地址,长度为 11#Master HMI 型号及其BasePort(COM1)PLC 类型上图中 1#Master HMI 的 COM1 连接 DVP PLC,作为 PLC 的主站。与 PLC 的通讯参数设置如下图新建一个 Link2,用 1#Master HMI 的 COM2 去连接 2#Slave HMI,如图通讯 Link2新建如下图的 1-Screen_1 画面。其中
10、D101 的属性设置与 D100 一样。新增 Link2,用COM2 RS485。选择 ASCII(Master)控制器。即 1#通过 Link2 作为 2#的主站,2#作为1#的从站。通讯延迟时间设为5ms 是为了改善通讯效果。实际运用可根据需要进行调整 此处 PLC 的站号就是 2#的人机站号D100 的属性设置完成输入后将$101.0 设为 ON,同时启动执行后宏D100 的执行后宏1-Screen_1 画面建立如图的 2-Screen_1 画面,来配合切换画面的实现两个数值显示的地址就用 PLC 的实际地址 D200 D201换画面就直接对 W40100 设常数值就可以了。想切换到哪里
11、,就把数值设置成第几个 Screen。2-Screen_2 画面建立如图的 Backgroud 宏建立如图的两个子宏子宏 1 子宏 2这样,1#Master HMI 的程序就编写完成了。2、2#Slave HMI 的程序编写【设定模组参数】如下图所示为 2#建立 2 个画面1-Screen_1 画面2#Slave HMI 作为1#的从站,这里要注意控制器类型的选择换画面的地址与 1#用一样的。实际上也就是 2#的$99同样用 COM2 RS485,这里的人机站号就是1# Link2 的 PLC 站号。D101 的属性设置实际的输入地址是 W400111-Screen_1 画面2-Screen_2 画面这样,2#Slave HMI 的程序也完成了。最后实际运行的情况如图2 个数值显示 D 也用W(即 2#$)来代替。