理论教育 基于PLC的地址链接通信程序设计

基于PLC的地址链接通信程序设计

时间:2023-07-01 理论教育 版权反馈
【摘要】:在所有全局数据包中,有的数据对某PLC,指定为发送,而其他需与其通信的PLC则指定为接收。PLC站点组态是,选用CPU型号、电源、机架及信号模块等有关模块,以按要求构成PLC控制系统。

基于PLC的地址链接通信程序设计

通信算法地址映射通信基本相同。也是发送方在其写区,写数,接收方在其读区,读数。所差的只是,在多台PLC链接时,数据间的相互关系稍复杂些。

1.欧姆龙PLC间链接通信程序设计

以图6-32所示链接为例,如果PLC1要把工作数据传送给PLC2,并要得到PLC2是否收到的回应,看看这样的地址映射通信程序是怎么编的。

图6-32所示为链接通信发送数据方,即PLC1机上的程序。图中用的也是符号地址。

从图6-32可知,梯级1就是把“工作数据”写入“PLC1链接写区字0”。其实如不要求对方的回应,整个通信程序本身仅此已足够了。有了梯级1程序,已把“工作数据”写入链接区,那个PLC要用这个数据,到与这个对应的读区去取就是了。

然而,怎么知道这个数据是否传过去了呢?最好能得到对方的回应。图6-32梯级②、③、④及图6-33的程序即为此而增加的。

978-7-111-39745-8-Chapter07-41.jpg

图6-32 接通信PLC1机程序

图6-33为PLC2的程序,它作用是把读到的数据,返回给对方。显然,如系统通信畅通,PLC2工作正常,则“链接区字0”与“链接区字16”肯定是相等的。那么,经图6-6梯级②比较,不会出现不相等。从梯级③、④知,不会产生“数据不一致报警”信号。反之,如系统通信不畅或PLC2工作不正常,那么,经2秒延时,定产生“数据不一致报警”信号。有此,发送数据方即可对应采取措施,以确保系统安全

978-7-111-39745-8-Chapter07-42.jpg

图6-33 链接通信PLC2机程序

提示:如这里“工作数据”较长时间不变,有可能检测不出通信或对方工作不正常。

同样,在读数据方,最好也要认定所读的数据,是否正确的程序。其方法是定时把读区数据转存给数据缓冲区,然后用非法数据改写读区。下一次再读时,如读区存的仍为非法数据,说明,通信或对方工作不正常。图6-34即为这个程序。

978-7-111-39745-8-Chapter07-43.jpg

图6-34 定时检查通信是否正常程序

从图6-34可知,用梯级1程序,可产生2s脉冲信号(T0001)。T001 ON将执行梯级2、3、4的程序。先看非法数据是否被链接通信所更改。如未更改,说明数据链接出错,则“读数错报警”ON,否则所读数据转存给数据缓冲区,并用非法数据改写读区。为下一轮的检查做准备。

提示:尽管图6-34程序,如“读取数据”等于“非法数据”,肯定通信或对方工作有问题。但反过来,还不能说通信肯定没有问题。很可能有新的数传来了,但因通信受干扰,而不正确。故较可靠的检查为图6-32、图6-33的程序。

当然,如不做这个检查,用数据方,使用这个“读取数据”就是了。这样检查程序用不着编。

2.西门子PLC间全局数据包通信程序设计

西门子把地址链接成为全局数据包通信。它的通信是通过全局数据通信服务。这个服务可使参与通信的CPU周期性交换数据。其通信机理与地址链接通信完全相同。在所有全局数据包中,有的数据对某PLC,指定为发送,而其他需与其通信的PLC则指定为接收。反之,有的数据,则可能是相反。而同一数据则只能一个发送,可一个接收,也可多个接收。在通信网上,有的PLC可参与建立这个数据包,有的也可不参与,或部分参与,或只参与接收,或只参与发送,可任意组态,比较灵活。

其组态是在Step7编程软件的GD表中进行。不同网络,不同机型有不同限制,如使用MPI网,对S7-300PLC,最大建立4个全局数据包,每包可有22字节。

完成组态后,如不做这个检查,用数据方,直接使用发送方发来数据。如果要检查通信及数据的可靠性,则可按图6-32~图6-34的算法处理。

(1)MPI网络及其PLC站点的组态。MPI网络组态是,确定站点数,设定站点地址及网络通信有关参数。PLC站点组态是,选用CPU型号、电源、机架及信号模块等有关模块,以按要求构成PLC控制系统。其具体步骤是:

1)生成网络及其站点。以3个S7-300站点为例。其过程为:首先,在STEP7中生成MPI网络项目;其次,在MPI网络项目中生成SIMATIC300(1)、SIMATIC300(2)及SIMATIC300(3)站点;最后,对每个站点分别作确定选用的CPU、电源及其他模块,进行硬件配置。配置的结果如图6-35a所示。

978-7-111-39745-8-Chapter07-44.jpg

图6-35 生成MPI网络及其站点及其连接情况

2)MPI网络连接。在MPI网络项目中,双击“MPI图标”,打开“NETPRO”窗口,选择MPI(1)进行组态。这时,可对一条红线(MPI网线)和三个互不相连的站点上建立连接。办法是分别用鼠标左键压住站的红点,并拖到MPI网线上。连接情况如图6-35b所示。注意,连接完成后要存盘。

3)连接后再用鼠标右键点击各个站点,修改通信参数或进行各站点的硬件配置。具体过程与单机系统类似,这里不再赘述。

(2)全局数据表组态。如果要使用全局数据表连接通信,还需要进行全局数据表组态。其过程是:

1)生成空GD表。这可在图6-35所示的“NETPRO”窗口上,选中MPI网络线(变粗)。然后点击“OPTIONS”菜单项下的“DEFINE GLOBAL DATA(定义全局数据)”项。这时将弹出如图6-36a所示空GD表。

2)填写CPU。双击“GDID”右边的方格,在出现的“SELECT CPU”对话框中双击站1的CPU图标,该CPU就出现在“GDID”右边的方格中。用同样方法将站2的CPU和站3的CPU放到对应的方格中。图6-36b所示为已完成3个CPU的选用。

3)填写GD包。在CPU下面的一行中,生成1号GD环1号GD包中的1号数据。这可用鼠标右键点击CPU314下面的方格,在出现的菜单中选择“SENDER”(发送者),该方格变深色,且在左端出现“>”符号。这时输入要发送的全局数据的地址MW0。点击CPU313下面的方格单元,输入要接收的全局数据的地址QW0。该方格的背景为白色,表示在该行中CPU313是接收站。

用同样方法可以填写其余的GD数据。其示例如图6-37所示。

978-7-111-39745-8-Chapter07-45.jpg

图6-36 生成GD表

978-7-111-39745-8-Chapter07-46.jpg

图6-37 GD数据包填写示例

提示:每行中应定义一个并且只能有一个CPU作为数据的发送方。要输入数据的实际地址。

这里变量引号“:”之后的数据为变量的复制因子,是用来定义数据区以字节为单位的长度。例如,MB20:8表示数据区是从MB20开始的连续8个字节。而所占区域还要加上两个说明字节,共占10个字节的区域。MW0∶11表示数据区是从MW0开始的连续11个字,加上两个说明字节,共占24个字的区域。

4)第一次编译GD表。其办法是,点击菜单项“GDTABLE”下的“COMPILE...”项。之后将生成GD环,如图6-38所示。例如,GD1.2.1表示,1号GD环2号GD包中第1组变量。

5)设置扫描速率。第一次编译GD以后,点击菜单项“VIEW”下的“SCANRATES”项。之后,每个数据包将增加标有“SR”的行,如图6-39所示。这行可用来设置该数据包的扫描速率(1~255)。S7-300默认值为8,S7-400默认值为22。CPU-400扫描速率设置为0,表示是事件驱动的GD发送和接收。

978-7-111-39745-8-Chapter07-47.jpg

图6-38 第一次编译后生成的GD环

6)设置GD包状态双字的地址。第一次编译GD以后,再点击菜单项“VIEW”下的“STATUS”项,将出现如图6-40所示的GDS行。可在其上给每个数据包指定一个用于反映状态双字的地址(不过此图中还没有给出此状态双字赋予的地址。)。其中GST是各GDS行中的状态双字相“与”的结果。有了这状态双字,可便于用户程序能及时了解通信的有效性和实时性,增强了系统的诊断能力。

7)以上设置下载给PLC,然后运行PLC,才能进行通信。

978-7-111-39745-8-Chapter07-48.jpg

图6-39 出现标有“SR”行的画面

3.三菱PLC间循环通信程序设计

三菱称之为循环通信(Cyclic Communica-tion),多用于控制网。发送数据的站点用广播方式发送数据,同时被其他所有站点接收。

如FX机可通过RS-485通信扩展板进行NNN最大为8)链接,实现地址链接通信。

其硬件配置如图6-41所示。

具体接线如图6-42所示。

其网络设定:

主从站设定:在D8176中设。只能设定一个主站,其他为从站。指定为0的为主站,其他1~7为从站。注意,站地址不能重复。

978-7-111-39745-8-Chapter07-49.jpg

图6-40 出现标有GDS行的画面

978-7-111-39745-8-Chapter07-50.jpg

图6-41 NN链接通信硬件配置

978-7-111-39745-8-Chapter07-51.jpg

图6-42 链接通信接线图

从站数量设定:在主站D8177中设定。默认为7。即7个从站。在从站中不必设。

链接模式(规模)设定:在主战D8178中设。有3种可能设定,即0、1及2。设为0时,4字D(D0~D3,D10~D13……余类推)参与链接;设为1时,除D0~D31,还增加M1000~M1031,M1064~M1095……余类推;设为2时,规模比1增大一倍。即D0~D7,D10~D17……余类推,及M1000~M1063,M1064~M1127……余类推。详细见表6-9。

重复次数:在主战D8179中设。

通信允许超时:在主战D8180中设,单位毫秒

表6-9 链接范围设定

978-7-111-39745-8-Chapter07-52.jpg

为了完成这个设定,须运行初始化程序。图6-43所示为主站上使用的初始化程序。至于连接后通信数据的准备及使用,以及通信安全保证,则可按图6-32~图6-34的算法处理。

从图6-43可知,这里本站为主站,从站有3个,模式为1,重复通信次数为3,通信允许超时为40ms。

此外,还可利用通信过程的标志位,即有关特殊继电器的状态,检查是否出错。可根据出错情况做相应处理。这些标志位的含义见表6-10。

978-7-111-39745-8-Chapter07-53.jpg

图6-43 链接初始化程序

4.生产者消费者链接通信

这里的关键也是做好相应组态。图6-44所示为两个控制器(AB PLC)及计算机以太网连网配置实例。

从图6-44可知,这里有站点1上计算机以太网网卡、站点2的以太网通信模块及站点3上的以太网通信模块,都是通过交换机及通信介质相互连接,以组成Ethernet/IP网络。这里站点2、3机架上都配置有控制器(PLC CPU),目的是通过Ethernet/IP实现控制器间标签链接实时数据交换。为此,要做数据生产者/消费者设置。其设置具体步骤如下:

表6-10 通信出错标志及其含义

978-7-111-39745-8-Chapter07-54.jpg

978-7-111-39745-8-Chapter07-55.jpg

图6-44 两个控制器联网配置

1)创建生成生产者标签的应用。过程是:

(a)创建新工程。运行RSLogix5000软件,打开它的一个例程。建立新工程,输入控制器名称为“Producer”(当然也可用别的名称),选择槽位与类型合适的机架,做好所需要的I/O配置,并存储文件。

(b)添加生产者标签。在如图6-45所示工程窗口双击“Controller Tags”项,将出现如图6-46所示Controller Tags窗口。

978-7-111-39745-8-Chapter07-56.jpg

图6-45 工程窗口

978-7-111-39745-8-Chapter07-57.jpg

图6-46 Controller Tags窗口

在其上添加名称Produced_data及T1,类型分别为DINT及TIMER的2个标签,如图6-47所示。

978-7-111-39745-8-Chapter07-58.jpg

图6-47 控制器标签窗口

这时可点击图示P处或用鼠标右击该标签名,在出现图6-48a所示窗口上,点击“Edit TagProperties”项。将弹出如图6-48b所示标签属性窗口

978-7-111-39745-8-Chapter07-59.jpg

图6-48 标签属性窗口弹出步骤

在此窗口上标签类型为生产者,并选定其消费者为2个(可在1~256之间选定)。(www.daowen.com)

978-7-111-39745-8-Chapter07-60.jpg

图6-49 “Who Active”窗口

(c)点击Communications菜单项,选定“Who Active”,将弹出如图6-49所示“Who Ac-tive”窗口,在其上将显示已安装的驱动。

(d)在其上选择以太网驱动(即AB_ETH-1),并展开其下拉项。点击在“Logix5550”及加亮的“Download”按钮。之后,将显示如图6-50所示“Download”窗口。

(e)点击“Download”窗口上“Down-load”按钮,下载设置程序。

(f)置PLC处于运行模式。

(g)最小化本RSLogix 5000例程。

2)创建生成消费者标签的应用。目的是增加生产者标签到到此应用的I/O配置中,添加接收数据的消费者标签,并测试其效果。过程是:

(a)运行“RSLogix5000”打开它的又一例程(原例程仍运行)。

978-7-111-39745-8-Chapter07-61.jpg

图6-50 “Download”窗口

提示:RSLogix5000软件可多例程,但在一个例程上创建的工程只能针对一个控制器,而不像西门子、欧姆龙编程软件一个例程创建的过程可处理多个PLC。

(b)创建新工程。运行RSLogix5000软件,打开它的一个例程。建立新工程,输入控制器名称为“Consumer”(当然也可用别的名称),选择槽位与类型合适的机架,做好所需要的I/O配置。

(c)添加生产者标签到本工程控制器的I/O配置中。为此进行如下操作:

a)在工程窗口中,用鼠标右肩点击“I/O Configuration”项,将弹出如图6-51所示下拉菜单窗口。

b)在下拉菜单上选择新模块(New Module),将弹出如图6-52所示选择模块窗口。

978-7-111-39745-8-Chapter07-62.jpg

图6-51 下拉菜单

978-7-111-39745-8-Chapter07-63.jpg

图6-52 选择模块窗口

c)选择“1756-ENET/B”模块,并点击“OK”。之后将弹出如图6-53所示模块特性(Module Properties)窗口。在该窗口输入Name、IP地址等有关项目如图所示。

d)再点击“Finish”,接收此配置后,1756-ENET/B模块将显示在它的I/O配置项中(如图6-54a所示)。进而,还必须把原当地的1756-ENET/B模块作为子模块添加到本应用中。做法是用鼠标右键点击图6-54a的1756-ENET/B Local_ENET项,然后出现如图6-54b所示下拉菜单。

978-7-111-39745-8-Chapter07-64.jpg

图6-53 模块特性(Module Properties)窗口

978-7-111-39745-8-Chapter07-65.jpg

图6-54 I/O文件夹及下拉菜单

e)从下拉菜单中选择新模块(New Module),并在随后又出现的如图6-52所示的选择模块类型(select ModuleType)的窗口中。

f)在窗口中选择1756-ENET/B模块,并点击“OK”按钮。之后又弹出图6-55模块特性窗口。但这时选用的IP地址为130.130.130.2,其他只一样。

g)点击“Finish”按钮,接受这个配置。这时I/O在配置文件夹中,远程的1756-ENET/B Remote_ENET模块将缩进显示在当地的1756-ENET/B Local_ENET之下,如图6-55a所示。

h)添加远程控制器(生产者)到I/O配置中,并置于远程1756-ENET/B模块之下,如图6-55b所示。具体过程略。

(d)通过如图6-56所示工程窗口创建消费者标签。其过程是:

a)用鼠标右键双击图6-56所示“Controller Tags”项,将又出现图6-47控制器标签窗口。

978-7-111-39745-8-Chapter07-66.jpg

图6-55 I/O在配置文件夹

978-7-111-39745-8-Chapter07-67.jpg

图6-56 工程窗口

b)在控制器标签窗口上,添加“cumused_data”标签,如图6-57所示。数据类型也是DINT。

978-7-111-39745-8-Chapter07-68.jpg

图6-57 添加“cumused_data”标签

c)与创建“produced_data”一样,打开标签特性窗口,如图6-58所示。不过此时卡选定标签类型为“Consimed”。并且在“Controller”项打开后可看到“Producer”控制器(因为它在运行,并与本控制器联网)。具体参数按表6-11选定。

978-7-111-39745-8-Chapter07-69.jpg

图6-58 标签特性窗口

表6-11 “cumused_data”标签参数

978-7-111-39745-8-Chapter07-70.jpg

(1)参数必须与生产者标签一致

d)点击“OK”按钮,存储标签特性。接着要下载这个消费应用配置给消费应用控制器,并置其处运行模式。为此,当然也与下载生产者应用一样做相应操作。具体过程略。

(e)测试。这时,如果联机生产者应用,并置“Produced_data”一个值,如8888,则转过来使消费者应用联机观察“consumed_data”的值,即可看到它也将是8888。

(f)当然还可以创建更多的消费者应用。那样的结果就是,一个数据多个使用。也可在消费者应用中创建生产者标签,在生产者应用中创消费产者标签。那样的结果就是,消费者应用向生产者应用传送数据。具体设置于上述类同,这里不再赘述。

5.三菱主站PLC通过CC-Link网络与本地站PLC通信编程

(1)系统配置。图6-59所示有主站及本地站,为本例系统配置。系统要求之一是,当主站的X20 ON时,本地站的Y41 ON,否则Y41 OFF;当本地站的X21 ON时,主站的Y40 ON,否则主站的Y40 OFF。

978-7-111-39745-8-Chapter07-71.jpg

图6-59 主站与本地站相连系统配置

(2)系统设置。

1)主站设置。先要在主站模块的面板上设置。站号设置开关0(10)、0(1),即主站设为“00”。传送速率/模式设置开关设为0,即速率156kbit/s,模式在线。

使用编程软件,先点击网络参数项1。之后弹出网络参数小窗口2。再点击其上“CC-Link”项,将弹出设置窗口3。有了此窗口即可进行相应设置。图6-60所示为本例网络参数设置。

978-7-111-39745-8-Chapter07-72.jpg

图6-60 主站网络参数设置例

本例设置为3个从站,远程I/O网络模式,远程输入RX对应(刷新)的PLC软元件为X1000(可从X,M,L,B,D,W,R或ZR中选择),远程输出RY对应(刷新)的PLC软元件为Y1000(可从Y,M,L,B,T,C,ST,D,W,R或ZR中选择),特殊继电器SB对应(刷新)的PLC软元件为SB0(可从M,L,B,D,W,R,SB或ZR中选择),特殊继电器SW对应(刷新)的PLC软元件为SW0(可从M,L,B,D,W,R,SB或ZR中选择)等。设置主站的网络参数使用三菱编程软件,主要是:类型为主站,模式为在线远程网络模式、扫描模式为异步等。设置主站的自动刷新参数为将远程输入(RX)的刷新软元件设置为X1000;将远程输出(RY)的刷新软元件设置为Y1000;将远程寄存器(RWr)的刷新软元件设置为D1000;将远程寄存器(RWw)的刷新软元件设置为D2000;将特殊继电器(SB)的刷新软元件设置为SB0;将特殊寄存器(SW)的刷新软元件设置为SW0。

2)本地站设置。设置本地站的自动刷新参数为将远程输入(RX)的刷新软元件设置为X1000;将远程输出(RY)的刷新软元件设置为Y1000;将远程寄存器(RWr)的刷新软元件设置为D1000;将远程寄存器(RWw)的刷新软元件设置为D2000;将特殊继电器(SB)的刷新软元件设置为SB0;将特殊寄存器(SW)的刷新软元件设置为SW0。

(3)主站PLC CPU的软元件和本地站PLC CPU的软元件之间的关系。经上述设置其输入输出I/O关系如图6-61所示。图中阴影部分指的是实际应用的软元件。寄存器、特殊继电器及寄存器之间也有对应关系。具体略。

(4)创建一个程序。有了图6-61关系,就可按启动循环通信、实现数据链接及执行读取缓冲存储器及实现用户对控制的要求编写程序。图6-62所示为主站控制程序。图6-63所示为本地站控制程序。

978-7-111-39745-8-Chapter07-73.jpg

图6-61 主站PLC CPU的软元件和本地站PLC CPU I/O之间的关系

978-7-111-39745-8-Chapter07-74.jpg

图6-63 本地站控制程序

(5)执行程序。首先接通远程I/O站的电源,然后接通主站的电源,启动数据链接。之后可用主站及本地站的LED显示器确认运行情况。图说明了当正常执行数据链接时,主站和远程I/O站的LED显示状态。也可利用控制结果看是否能达到要求确认网络工作正常。

提示:CC-Link为主从网。但这里从站为本地站,可与主站及其他本地站进行循环(nn链接)通信。

6.三菱主站两PLC站点通过CC-LinkIE控制网通信编程

配置实例。它有两个站点。如图6-64所示,1号站为管理站,2号站为普通站。要说明的是,本例选材来自三菱电机自动化(中国)有限公司网站中E-learning。

所用PLC的模块构成和I/O分配如图6-65所示。

其以太网模块上有“IN”、“OUT”连接器。可用它连接光纤。一个站的“OUT”和下一站的“IN”通过光纤电缆相连。如图6-66所示,依次连接好“OUT”→“IN”、“OUT”→“IN”后,形成一个环。如站点多,也是类似依次连接成如图6-66所示的环型拓扑结构。

978-7-111-39745-8-Chapter07-75.jpg

图6-64 两站连网

1号站(管理站)的网络设定是:起始I/O号为0080,网络号为1,总站数为2。组号为0,站号为1。2号站(普通站)的网络设定是:起始I/O号为0080,网络号为1,总站数为2。组号为0,站号为2。管理站中还要进行的通用参数分配,其设定的范围如图6-67所示。

978-7-111-39745-8-Chapter07-76.jpg

图6-65 站点模块配置

为了实现通信,要在计算机上运行三菱GX Developer编程软件,并PLC联机,把上述设定下载分别给两个PLC站点。为了使用好链接数据,还要编写相应程序。如两站有如图6-68所示程序。

978-7-111-39745-8-Chapter07-77.jpg

图6-66 依次连接成环形网络

这程序的功能是:1号站的开关“X10”每次为ON时,“W0”被加上20(数值每次增加20)。同时2号站的“W0”的值也随之变化。将1号站的开关“X0”ON/OFF时,线圈“B0”ON/OFF,同时2号站的触点“B0”随之ON/OFF。2号站的“B0”ON/OFF时,线圈“Y41”ON/OFF。“Y41”变为ON时,“W0”的值被传送至“D10”。随着2号站开关“X1”的ON/OFF,线圈“B100”ON/OFF,同时1号站的触点“B100”ON/OFF。随着1号站触点“B100”的ON/OFF,线圈“Y40”ON/OFF。2号站开关“X11”ON/OFF时,上述“D10”的值被传送至“W100”。1号站的“Y40”变为ON时,“W100”的值被传送至“D0”。

这些都可通过的顺控程序动作模拟,具体确认上述操作执行过程中数据通信的进展。如图6-69所示,如点击1号站的“X0”、“X10”、2号站的“X1”、“X11”各开关,都可通过指示灯、数据显示及梯形图确认数据通信的过程。点击“初始状态”按钮,则返回操作开始前的初始状态。

978-7-111-39745-8-Chapter07-78.jpg

图6-67 通用参数设定的范围

978-7-111-39745-8-Chapter07-79.jpg

图6-68 两站使用通信数据程序

978-7-111-39745-8-Chapter07-80.jpg

图6-69 通信程序效果模拟

至于更多细节可登录该网站参与学习。这里略!

提示:建立这样标签总数是有限制。这如同一个单一控制器所能处理的I/O总数有限一样。这里的限制主要来自网络的传输能力。

提示:PLC间链接通信编程是最简单的。做好链接组态是编程的最主要的工作。否则数据链接将无法实现。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈