首页 历史故事编写多CPU系统程序示例

编写多CPU系统程序示例

【摘要】:下面用一个实例来介绍如何组建多CPU系统,以及如何利用CPU间的自动刷新功能进行数据的传送。图10-11 多CPU系统的自动刷新示意图PLC顺序控制CPU侧的设置如下:1)图10-12所示为设置M软元件的自动刷新范围。运动控制CPU侧的设置如下:打开运动控制CPU对应的程序编写软件MT Developer,进入多CPU设置画面,进行相应的设置。当Q02HCPU的M3为ON时,退出SFC程序。

下面用一个实例来介绍如何组建多CPU系统,以及如何利用CPU间的自动刷新功能进行数据的传送。

本例的硬件配置如图10-10所示。

978-7-111-34215-1-Chapter10-10.jpg

图10-10 硬件配置

实验步骤如下:

1.硬件安装和接线

在基板上把CPU按规定分别插好,然后把用到的各种模块也插到基板上。

2.多CPU设置

本例中的多CPU设置包括PLC顺序控制CPU侧和运动控制CPU侧的设置。

本实验设置的自动刷新软元件分别为CPU1:M0~M31;D2000~D2009;CPU2:M32~M63;D2010~D2019,如图10-11所示。

978-7-111-34215-1-Chapter10-11.jpg

图10-11 多CPU系统的自动刷新示意图

PLC顺序控制CPU侧的设置如下:

1)图10-12所示为设置M软元件的自动刷新范围。

2)图10-13所示为设置D软元件的自动刷新范围。

运动控制CPU侧的设置如下:打开运动控制CPU(Q172HCPU)对应的程序编写软件MT Developer,进入多CPU设置画面,进行相应的设置。

注意此设置必须与PLC CPU侧的设置一致。

1)图10-14为设置M软元件的自动刷新范围。

2)图10-15所示为设置D软元件的自动刷新范围。

3.进行I/O设置

对基板上的各个模块进行I/O设置。打开GX Developer软件,进入I/O设置画面,对插入基板上的各个模块进行I/O地址的分配,如图10-16所示。

然后点击“详细设置”按钮,进入模块分配画面,把输入模块QX40、输出模块QY40都分配给1号CPU使用,如图10-17所示。

4.程序编写

(1)PLC侧程序

图10-18所示程序实现的功能是当Q02HCPU的M0、M10接通时,启动运动控制CPU的第1号SFC程序。

978-7-111-34215-1-Chapter10-12.jpg

图10-12 PLC侧自动刷新范围设置1

978-7-111-34215-1-Chapter10-13.jpg

图10-13 PLC侧自动刷新范围设置2

978-7-111-34215-1-Chapter10-14.jpg

图10-14 运动控制CPU侧自动刷新范围设置1

978-7-111-34215-1-Chapter10-15.jpg

图10-15 运动控制CPU侧自动刷新范围设置2

978-7-111-34215-1-Chapter10-16.jpg

图10-16 I/O设置画面

978-7-111-34215-1-Chapter10-17.jpg

图10-17 I/O详细设置画面

当Q02HCPU在RUN状态时,把K1000赋值到Q02HCPU的D2000中,因为已经设定了进行自动刷新,这个D2000在运动控制CPU里可以被监控到。

在运动控制CPU里,把K500赋值到运动控制CPU的D2010里,因为已经设定了自动刷新,运动控制CPU里的D2010的值在Q02HCPU里可以被监控到,然后把这个值传送到Q02HCPU的D50中。

注意,程序中出现的SFCS指令是PLC顺序控制CPU和运动控制CPU之间进行通信的专用指令,其意思是在PLC顺序控制CPU端启动运动控制CPU里的SFC程序)。

(2)运动控制CPU侧程序

图10-19所示程序实现的功能是,当Q02HCPU的M0为ON时,把M2042置位,且把K500赋值给D2010,当伺服系统的轴准备好后,执行K100里的伺服程序。当Q02HCPU的M3为ON时,退出SFC程序。这里D2010的值在PLC侧是可以通过自动刷新读到的,可以在PLC程序里监控到。同时,运动控制CPU里也是能监控到Q02HCPU里的D2000的值的。

978-7-111-34215-1-Chapter10-18.jpg

图10-18 PLC侧程序

978-7-111-34215-1-Chapter10-19.jpg

图10-19 运动控制CPU侧程序

5.程序写入和调试

把上面所述的程序写入CPU后就可以监控到自动刷新能正常进行了,下面是具体的监控画面。

在Q02HCPU侧(见图10-20)可以看到,运动控制CPU里的D2010的值500已经是自动刷新到Q02HCPU里了。而当M0、M10同时为ON时,SFCS指令即被执行,启动了2号CPU(即运动控制CPU)的第1号SFC程序。

而在运动控制CPU里也可以看到,在Q02HCPU里D2000被赋值为2000,也已经通过自动刷新功能刷新到运动控制CPU里的D2000里了。同样的,运动控制CPU里的M0、M10的值为ON也被自动刷新过来了,如图10-21所示。

978-7-111-34215-1-Chapter10-20.jpg

图10-20 Q02HCPU侧程序监控

978-7-111-34215-1-Chapter10-21.jpg

图10-21 运动控制CPU侧程序监控