HMI和PLC之间通信的实现方式

我想知道操作工操作HMI画面的时候,即是他们干预自动化设备的时候,画面HMI的软件上的数据怎么能被输送到PLC上(注:不论开关量还是模拟量),PLC从而输出到现场的执行设备(各种电磁阀、比例阀等)上。我想知道的是软件本身是怎么通过以太网把数据送给PLC的,是不是PLC本身可以处理这些来自以太网的数据呢?另注:本人是从事热轧生产线上的设备维修工作,对上位机不了解,希望能加强这方面能力,先谢谢大家了。
实际上在我所举的例子当中,这个HMI就是一个位,单位是B,xxxx,xxxxB这样格式是一个字节,你自己去体会吧。)那么,内存里面的数据传到另外一个内存里面
我需要的就是这句话。
谢谢大家的回答,这些对我都很有帮助!谢谢大家。

1、首先在电脑中,打开HMI程序编辑软件EasyBuilder Pro,如下图所示。

2、然后新建一个工程,这里使用HMI型号为(威纶通MT8102iE),其他型号操作一样,点击确定。

3、HMI连接的PLC为三菱FX3U(其他品牌、其他型号PLC均可)。

4、然后点击页面左上角的元件/PLC控制/新增,如下图所示。

5、在PLC控制中设置,控制类型: 数据写入设置(当前基本窗口ID),触发地址:D10(此处设置的元件地址,即是PLC中接收画面编号的地址),设置完成以后,点击确定。

6、点击关闭完成PLC控制,这样就完成设置了,将HMI程序编译之后下载到HMI触摸屏,HMI的地址编号会储存至PLC的D10中。

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-11-23
其实HMI与PLC之间的通讯,可以说有很多很多的方式。以太网也好,串口也好,其实归根结顶,就是通过HMI“写”状态到PLC里面去。

首先你要知道,PLC程序在线的话,每一个动作都是有很多条件限制的。比如说开一台电机,电机能发动的条件就会包括得有“电机是否有故障,电机控制模式是否在自动……等等”如果说条件不满足,电机是开不起来的(换句话说,在PLC的程序里面,开命令的这个“位”是置不下去的)。这是对于PLC程序本身而言的。
这个时候,工程师就会在PLC程序里面同样也放置得有一个HMI的位,这个位没有任何的限制,相当于与前面的“开命令”并联。在这种情况下,只要PLC里面的这个HMI位被置“1”了,那么开的这路就导通了。
也许你会有疑虑了,照我这样说,HMI这个位不是容易产生生产事故了吗?
-------------------------------------------------------------------
我首先告诉你PLC执行程序的步骤:
PLC执行程序,其实是按照程序的步骤或者是程序的逻辑一遍又一遍的“扫描”下来的,因此有些逻辑位可以手动被外部设置为“真”(比如说PLC内部的HMI接口),但是如果实际情况是“假”的,那么它是开不动设备的。因为PLC的扫描周期很短很短,大大的小于输出响应的时间,意思就是,其实程序在这一个周期里面其实是动作的,但是这一周期的程序动作不能使得DO模块有输出,于是外部设备是不能动的。编程员们会将这种开关的位设置为“点动”,意思就是只有一个扫描周期,进入第二个周期的时候,1就会自动变为“0”,这就是所谓的点动。你心里面有这么个印象就行。
-----------------------------------------------------------------
我接着往下面说
前面说到程序里面的“开”(我们叫它TAG名)和为HMI设置的“开”,这两个开是“并联”的关系嘛。PLC里面有虚拟的“常开点和长闭点”,在同一个TAG名下,这两个点是互锁的关系,即一个导通另一个必定不导通。
开这个命令是这样设置的,1,TAG的常开点与HMI的长闭点串联;2,TAG的长闭点与HMI的常开点串联;再将1,2两行并联。
你想想看,这样一来,无论是TAG,还是HMI,随意哪一个被导通了,开命令就写下去了。如果有错,并且如果HMI写的是1下去,那么第一个周期开命令写下去了,(注意,一个周期不能导致输出响应),第二个周期HMI就变成0了,结果还是不导通。现在清楚PLC里面的过程了吧?

再回到你问的HMI是怎么写到PLC的,现在我告诉你。其实你口中所说的HMI,就是处理器里面开辟出来的一个CPU内存里面的一个很小的空间,(实际上在我所举的例子当中,这个HMI就是一个位,单位是B,xxxx,xxxxB这样格式是一个字节,你自己去体会吧。)那么,内存里面的数据传到另外一个内存里面,还难理解吗????

呵呵,纯手工打造,不添加任何防伪标志的。不明白再给你补充吧~希望对你有帮助。

前面有个地方纠正一下,输出那个地方。其实真正的输出,是在第二个周期才开始的,第一个周期走到输出的这一步的时候,输出是“假”的,走完这一行输出就变为“真”的了。于是,只要输出这一行的前面是“真”的话,输出就会有响应。
那么,HMI在第一周期常开点被写为“真”,这一周期的TAG的长闭点是导通的,那么输出预备为“真”。在第二个周期,HMI的常开点为“假”,长闭点为“真”,那么。如果输出检测到可以输出的话,TAG的常开点就被置为“真”,于是乎,TAG的常开点为真,HMI的长闭点为"真",输出在接下来的周期里面一直为“真”。直到,其中一个为“假”,或者是手动让该通道为“假”,输出断开。所以说,有些地方,比如阀门,开到位了或者关到位了就不会再开或者再关。就是这样的道理。
呵呵呵~~本回答被提问者采纳
第2个回答  2010-03-05
朋友!你好!举一个例子:按下HMI开关A,启动电磁阀A,按下HMI开关B,停止电磁阀B,其实在我们编写这个程序的时候是这样的:开关A所驱动的点是M0,性质为复归式,就像点动按钮一样!开关B也是驱动M0,性质一样。然后再PLCL里面写道:LD M0 SET Y1 ,LD M0 RSET Y1.END然后用一条通信电缆连接PLC与HMI就可以聊!在画面上面按下a ,电磁阀动作,按下b,电磁阀停止!其实在复杂的东西都离不开这种道理!好料!我也是瞎说!希望高手们说点实际的,用的上手的东西!
第3个回答  2010-03-05
HMI 一般不采用以太网来控制,对于大型的组态才采用这个

一般HMI与PLC之间是建立232的通讯的, 在HMI里面设置好232的通讯协议, 就可以直接和PLC进寻通讯了。
第4个回答  2010-03-05
通过PLC通信协议,来控制PLC,无论是通过RS232或者通过以太网,外表只是通信介质的不一样,本质是一样,如果你会开发上位机,你就知道了
相似回答