深度挖掘台达DOP人机界面“一机多屏”实现.doc

深度挖掘台达DOP人机界面“一机多屏”实现.doc

  1. 1、本文档共11页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
深度挖掘-台达DOP人机界面“一机多屏”的实现 中达电通股份有限公司PLC产品处 王乃全 前言: 随着人机界面的发展及用户对高功能的追求,人机界面“一机多屏”的使用方式越来越频繁。本文用清晰的图示结合一个样例详细的说明台达DOP是如何实现“一机多屏”功能的。 关键字:人机界面 宏指令 问题的引出与解答: 现在市面上很多的人机界面(HMI)都提供了方便的一台控制器连接两台或者更多人机的功能,也就是大家常说的“一机多屏”,如WeinView、Hitech等都可以实现。台达的人机功能很强,但在Screen Editor编辑软件中并没有提供这样的功能。那么如果用户想使用“一机多屏”就没有办法了吗? 当然不是这样,台达人机很好的一个特点就是提供了2个通讯口,而且2个通讯口可以独立使用。这样,我们就可以用一个通讯口连接控制器,另一个通讯口连接第二台或者第三台触摸屏了。 解决方法有了,下面我们就结合一个样例来看一看DOP是怎么做到的。 系统图: 如上面这样的系统图,我们可以用一个人机作为Master HMI,其余若干个人机作为Slave HMI,分别为2#、3#......。Master HMI的COM1与一台EH PLC通过RS232连接,COM2与各个Slave HMI通过RS485连接。这样,Master HMI作为两条线路上的主站,负责交换两条线路上的数据。 本例我们采用两台HMI同一个PLC连接,所以将上面的系统图简化并作个变形,以形成我们熟悉的样子。两台人机直接通过MODBUS ASCII来连接。 如下图: 样例要实现的功能: 两台人同时显示PLC的数据变化。 当其中任意一台人机修改PLC寄存器的数值时,同时能在另一台人机上一起变化。 当一台人机切换画面时,另一台人机也会自动切换。 功能分析与框图: DOP有个很大的特点就是支持宏指令功能,所以这些功能都要依靠宏来实现。我们先设功能1中PLC用到的寄存器地址为D200, D201。2#Slave HMI与之对应的地址设为$109, $110,根据下表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 断电保持内部缓存器(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,就Call子宏2,在子宏2中用BMOV指令把D100, D101分为传送给2#W40010, 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中用BMOV指令把2#W40010, 2#W40011分为传送给D100, D101以达到数据同时改变。同时启动2#W40010, 2#W40011的执行后宏,先做200ms延时,之后复位2#B00001。 三种功能实现的图示图下图所示: PLC 1#Master HMI 2#Slave HMI 内部宏$ 区 内部宏 $ 区 D区 D区

文档评论(0)

wx171113 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档