实际生产中,常需要CPU在报告故障和事件的时候必须协调系统的时间,而且系统时间误差必须小于几毫秒的时间,这样可以保证系统的一致性。这是对网络通信实时性的一种考验,而ControlNet利用其特有的Producer/Consumer通信机理保证了这一指标的实现。
下面是利用Producer/Consumer通信机理对ControlLogix和CompactLogix进行系统对时的实验。这需要建立两个工程:一个工程为主系统(ControlLogix处理器),其作用是设置并获取CPU的时钟,并且将它广播出去。另外一个工程为从系统(CompactLogix处理器),它的作用是消费主系统CPU广播的数据并将该数据设置为本CPU的时钟,实现系统对时。
首先打开RSLinx软件,通过以太网络查看系统结构,需要的ControlLogix和Com-pactLogix系统一定都要在ControlNet网络中。
1.主系统配置
打开RSLogix5000编程软件,点击File(文件)→New(新建),将会看到New Control-ler(新建控制器)画面。根据实际情况填写控制器槽号和机架槽数等信息,至于控制器的版本信息,可以在RSLinx软件右键控制器查看。本例中查看到的信息如图4-67所示。
创建完工程后,双击打开“Controller Tags”,如图4-68所示。
图4-67 ControlLogix控制器版本信息
图4-68 打开控制器标签
点击软件窗口下方的“Edit Tags”,添加一个名字为“Date”,数据类型为“DINT[8]”的标签,如图4-69所示。
图4-69 新建“Date”数据
右键点击“Date”前的灰色按钮,点击Edit“Date”Properties,修改“Date”属性,如图4-70所示,选择“Produced”,广播该标签。
然后点击“Connection”,确定连接数,将“Consumer”的数量更改为“3”,并单击“确定”,如图4-71所示。
右键“Tasks”文件夹,点击“New Task”,新建周期型任务,如图4-72所示。
图4-70 广播标签“Date”
图4-71 “Consumer”的数量更改为“3”
图4-72 新建周期型任务
新建的周期型任务,周期为2ms,优先级为5,设置如图4-73所示。
图4-73 新建任务属性
在新建的“Master”任务下,右键新建一个“Program”,名字为“Main”,点击“OK”,如图4-74所示。
图4-74 新建程序
在“Main”程序下,右键新建一个“Routine”(例程),名字为“GSV”,点击“OK”,如图4-75所示。
图4-75 新建例程
右键单击“Main”程序文件夹,选择属性“Properties”栏,将“Main”程序的主例程设为新建的名为“GSV”的“Routine”(例程),如图4-76所示。
图4-76 更改“Main”程序主例程
双击打开“GSV”例程,在“Input/Output”指令段中找到“GSV”指令,如图4-77所示。
图4-77 查找GSV指令
添加“GSV”指令,配置参数方法如图4-78所示。
将“GSV”指令配置成图4-79所示形式。
检验程序后保存并下载至ControlLogix处理器中,如图4-80所示,在RSLogix5000编程软件中选择“Communications”下的“Who Active”。
在弹出的设备选择画面中选择1756-L61控制器,并下载程序,在线后将处理器转到运行状态,并右键单击“Controller”进入“Properties”栏,如图4-81所示。进入到控制器属性界面,调整控制器时间。
图4-78 配置“GSV”指令
图4-79 “GSV”指令配置结果
图4-80 选择通信
图4-81 选择控制器属性
将CPU的时间设为与工作站的时间相同,即与计算机的时间相同,如图4-82所示。
图4-82 更改CPU时间
至此,主系统的程序编制完毕,等待从系统的工作结束后观察对时的结果,现在可以在控制器标签文件夹中观察“Date”的值是否与系统时间对应,结果如图4-83所示。可以看到,控制器时间是与计算机系统时间对应上的。
2.从系统配置
与主系统一样,为CompactLogix系统新建一个项目,根据RSLinx软件中显示的控制器情况,右键查看CompactLogix系统信息组态控制器。本例中控制器组态信息如图4-84所示。
选择属性,右键CompactLogix控制器集成的ControlNet通信口,更改通信口的组态信息,如图4-85所示。
图4-83 查看控制器时间
(www.xing528.com)
图4-84 CompactLogix控制器组态信息
图4-85 更改通信口的组态信息
根据实际信息和RSLinx中查看到的信息,主要是模块的ControlNet节点地址信息,填写通信口的信息如图4-86所示。
图4-86 更改通信口的组态信息
组态主系统的处理器。本实验中通过ControlNet网络通信连接主系统处理器,所以需要先组态主系统的1756-CNB/D通信模块。同样右键CompactLogix控制器集成的ControlNet通信口,选择“New Module”。在弹出的模块列表中选择1756-CNB/D通信模块,如图4-87所示。
图4-87 选择1756-CNB/D通信模块
在弹出的1756-CNB ControlNet通信模块设置对话框中根据RSLinx软件中扫描结果填写版本信息如图4-88所示。注意,由于主机架使用的是13槽框架,所以“Chassis Size”一栏写“13”,RSLinx扫描结果中CNB模块处于ControlNet网络的1号节点,故节点号写“1”,CNB模块处于机架上第一槽,故“Slot”项写“1”。点击“OK”完成设置。
接下来,在CNB模块下添加主系统的控制器。右键CNB模块选择“New Module”添加控制器,如图4-89所示。
在图4-90所示画面中选择主系统使用的1756-L61处理器。
图4-88 组态1756-CNB/D通信模块
图4-89 添加主系统处理器
图4-90 添加主系统处理器1756-L61
根据RSLinx扫描结果,组态控制器,这里给控制器命名为“L61”,注意这个命名可以与主系统中建立的程序名称不一样,如图4-91所示。
图4-91 组态系统处理器1756-L61
组态完的系统结构图如图4-92所示。
图4-92 从系统组态结果
组态结束后,开始对从系统进行编程调试。如图4-93所示,添加一个名字为“Date_Consumer”,数据类型为“DINT[8]”的标签。
图4-93 添加“Date_Consumer”
右键点击“Date_Consumer”,点击“Edit Tag Properties”,修改“Date_Consumer”属性,如图4-94所示。
选择“Consumed”,消费制定的标签,然后点击“Connection”,如图4-95所示。注意这里连接的是组态时建立的主系统处理器的名称,即“L61”,连接的是该处理器中的“Date”数据。注意该数据名称必须与之前在主系统程序中新建的数据名称一致,否则将无法对时。
新建数据后,再新建例程。右键“Tasks”文件夹上点击“New Task”,建立如图4-96所示配置的任务。
图4-94 修改“DateConsumer”属性
图4-95 建立连接的目标
图4-96 新建从系统任务
与主系统中建立的程序类似,在“Slave”下新建一个“Program”,名字为“Main”;在“Main”下新建一个“Routine”,名字为“SSV”。右键单击“Main”的属性“Properties”栏,将“Main”的主“Routines”定为新建的名为“SSV”的“Routine”,单击“OK”结束。
在“SSV”例程中输入“SSV”指令,填写如图4-97所示的参数和标签。
检验程序后保存并下载至从站的CompactLogix处理器中。但是通过观察,发现“I/O not responding”的灯在处理器上闪动,并且远程ControlLogix系统的CPU模块上有黄色的三角标记,如图4-98所示。这表示远程CPU广播的“Producer”数据属于“Schedule”的数据,需要进行ControlNet网络规划后才能使用。
打开RSNetWorx for ControlNet软件。选择要扫描的ControlNet,如图4-99所示。
点击“OK”后,扫描结果如图4-100所示。
图4-97 配置“SSV”参数
图4-98 未进行ControlNet的网络规划的状态
图4-99 选择要扫描的ControlNet
图4-100 扫描结果
单击菜单中“Network”的“Properties”项进行网络参数设定,如图4-101所示。
图4-101 网络参数设定
点击后,出现了网络参数对话框。因为网络中只有5个节点,所以改变“Max Sched-uled Address”为“5”,改变“Max Unscheduled Address”为“6”,设定网络参数后,再次扫描,进行下一步。单击菜单栏中的保存按钮,在随后出现的画面中单击“OK”继续,如图4-102所示。至此,网络组态结束。
图4-102 保存网络组态信息
回到RSLogix5000编程界面,在线观察,发现黄色三角标记已经消失,并且处理器的I/O显示“OK”,如图4-103所示。
在线后将处理器转到运行状态,打开从站控制器标签,观察时间数据是否与主站一致,如图4-104所示。至此,ControlLogix和CompactLogix系统对时实验结束。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。