发表于:2005-12-26 09:31:00
1楼
实验五 创建ControlLogix项目和梯形图 进行控制系统CPU对时
在本实验中,我们将利用RSLogix5000编程软件在ControlLogix处理器中创建二个项目。一个项目为主系统-设置并获取CPU的时钟,并且将它广播出去。另外一个项目为从系统-消费主系统CPU广播的的数据并将该数据设置为本CPU的时钟,实现系统对时。我们将第一组定为主系统,其他三组为从系统与主系统对时。然后交换。
本实验的主题:
 创建一个ControlLogix项目
 设置CPU的时钟
 GSV指令获取系统时钟
 Producer一个数组
 Consumer一个数组
 CSV指令设置系统时钟
 通过RsNetWorx组态ControlNet网络
主系统程序如下:
生产主管找到你,说他需要CPU在报告故障和事件的时候必须协调系统的时间,而且系统误差必须小于7ms, 这样可以保证系统的一致性。你知道这对ControlNet而言可以精确的保证系统的误差小于指标,并答应主管马上完成。
1. 双击RSLogix5000图标。出现如下画面:
2. 点击File(文件) New(新建)。你将会看到 New Controller (新建控制器)画面。起始槽号为0。看一下框架,你会发现共有10槽,既然起始槽号为0,那么5555控制器(带有钥匙的模块)位于第四槽,即3号槽。因此,填写画面,与下图一致,然后按OK。
现在我们已经创建了一个ControlLogix项目。此时我们还没有与项目相关的任何I/O模块,项目中也没有可执行的代码(如梯形图)。你正在离线工作。所作的任何改变都只限于软件中,并存储在计算机的硬驱中。在进入到在线操作以前,这些变化并不能反映到5555控制器中。注意:所有模块都可带电插拔
3. 将鼠标移到“Controller”文件夹下面的“Controller Tags”,双击打开。
4. 点击屏幕下方的“Edit”,如图所示,添加一个名字为“Date”,数据类型为“DINT[8]”的标签。
5. 右键点击Date,点击Edit Tag Properties,修改Date属性。
6. 如图点击Produced,广播该标签,然后点击Connection。
7. 将Consumer的数量更改为3,并单击确定。
8. 鼠标移到“Tasks”文件夹上点击New Task。
9. 新建一个周期型的任务,周期为2Ms,优先级为2。
10. 在Master下新建一个Program,名字为Main,点击OK
11. 在Main下新建一个Routine,名字为GSV,点击OK
12. 右键单击Main的属性Properties栏。
13. 将Main的主Routines定为刚才新建的名为GSV的Routine,单击OK结束。
14. 按鼠标右键,从弹出的菜单上选择“Open”,出现如下画面。
注意出现在右边窗口的阶梯,此阶梯处于编辑(edit)模式,在阶梯的左边标着“e”。现在可以添加阶梯了。
15. 输入“GSV”指令,填写指定的参数和标签。
16. 检验程序后保存并下载至一号Demo处理器。
17. 点击主菜单上的Commmunication,选择Who Active,你会看到如下画面:直到你选择了03号槽的L55处理器。选中Apply Current Path to Project Box(见图中下部),然后选择Download。
18. 在线后将处理器转到运行状态,并右键单击Controller进入Properties栏。
19. 将CPU的时间设为今天,并单击OK结束。
20. 到现在为止,主系统的程序编制完毕,等待从系统的工作结束后观察结果,同时可以观察Date[6]的值是否与系统时间对应。
从系统程序如下:
生产主管找到你,说他需要CPU在报告故障和事件的时候必须协调系统的时间,而且系统误差必须小于7ms, 这样可以保证系统的一致性。你知道这对ControlNet而言可以精确的保证系统的误差小于指标,并答应主管马上完成。
21. 双击RSLogix5000图标。出现如下画面:
22. 点击File(文件) New(新建)。你将会看到 New Controller (新建控制器)画面。起始槽号为0。看一下框架,你会发现共有10槽,既然起始槽号为0,那么5555控制器(带有钥匙的模块)位于第四槽,即3号槽。因此,填写画面,与下图一致,然后按OK。
现在我们已经创建了一个ControlLogix项目。此时我们还没有与项目相关的任何I/O模块,项目中也没有可执行的代码(如梯形图)。你正在离线工作。所作的任何改变都只限于软件中,并存储在计算机的硬驱中。在进入到在线操作以前,这些变化并不能反映到5555控制器中。注意:所有模块都可带电插拔
23. 接下来添加本机架CNB通讯模块。鼠标左键点击I/O Configuration(I/O组态,位于左边窗口的底部)。然后按鼠标右键,并选择New Module(新模块)。
24. 在下图所示画面中选择1756-CNB/D。选中之后,按OK。
25. 1756-CNB ControlNet通讯模块位于第1号槽(确认一下),因此按下图所示内容填写。注意节点号应该和各Demo的CNB在ControlNet上的节点号对应。
在本实验中,我们接受缺省设置,故选择Finish(完成)。
26. 接下来添加主站广播时间顺据的CPU。鼠标左键点击1756-CNB/D CNB(CNB模块,位于左边窗口的底部)。然后按鼠标右键,并选择New Module(新模块)。
27. 首先添加远程机架的CNB模块,我们在下图所示画面中选择1756-CNB/D。选中之后,按OK。
28. 配置远程机架的CNB模块,通过该模块我们可以找到广播数据的CPU。
在本实验中,我们接受缺省设置,故选择Finish(完成)。
29. 通过远程机架的CNB模块,我们配置广播数据的CPU,然后按鼠标右键,并选择New Module(新模块)。
30. 我们选择CPU的型号为1756-L55,并更改其版本号为12,单击OK继续。
31. 我们选择CPU的槽位号为3,单击Finish完成。
32. 接下来回到主画面,你会发现远程CPU已经添加完毕,现在仍处于离线状态,因此你所作的一切尚未经过校验。
33. 将鼠标移到“Controller”文件夹下面的“Controller Tags”,双击打开。
34. 点击屏幕下方的“Edit”,如图所示,添加一个名字为“Date_Consumer”,数据类型为“DINT[8]”的标签。
35. 右键点击Date_Consumer,点击Edit Tag Properties,修改Date_Consumer属性。
36. 如图点击Consumed,消费制定的标签,然后点击Connection。
37. 填写远程CPU的广播信息,并确定RPI数据更新的时间,最后单击OK结束。
38. 鼠标移到“Tasks”文件夹上点击New Task。
39. 新建一个周期型的任务,周期为2Ms,优先级为2。
40. 在Slave下新建一个Program,名字为Main,点击OK
41. 在Main下新建一个Routine,名字为SSV,点击OK
42. 右键单击Main的属性Properties栏。
43. 将Main的主Routines定为刚才新建的名为SSV的Routine,单击OK结束。
44. 按鼠标右键,从弹出的菜单上选择“Open”,出现如下画面。
注意出现在右边窗口的阶梯,此阶梯处于编辑(edit)模式,在阶梯的左边标着“e”。现在可以添加阶梯了。
45. 输入“SSV”指令,填写指定的参数和标签。
46. 检验程序后保存并下载至从站Demo的处理器。
47. 点击主菜单上的Communication,选择Who Active,你会看到如下画面:直到你选择了03号槽的L55处理器。选中Apply Current Path to Project Box(见图中下部),然后选择Download。
48. 利用菜单将控制器切换到Remote Run模式,这样你就可以验证你的程序了。
49. 但是通过观察,发现I/O not responding的灯在处理器上闪动,并且远程CPU模块上有黄色的三角标记,这表示远程CPU广播的Producer数据属于Schedule的数据,需要进行控制网络规划后才能使用,因此我们需要进行ControlNet的网络规划。
50. 双击启动RSNetWorx-ControlNet图标和快捷方式。
51. 您将进入以下的画面。
52. 点击在线按钮,选择以太网的Driver,上到背板,找到CNB网卡,最后进入ControlNet。
53. 点击OK后,出现了如图说示画面。并如图所示,点击编辑使能。
54. 单击菜单Network的Properties项进行网络参数设定。
55. 点击后,出现了网络参数对话框。并如图所示改变Max Scheduled Address为6. 改变Max Unscheduled Address为 11. Then hit “OK”.
56. 单击菜单栏的保存按钮。
57. 在随后出现的画面中单击OK继续。
网络组态到此结束。
58. 我们回到RsLogix5000编程界面,在线观察,发现PowerFlex70的黄色三角标记已经消失,并且处理器的I/O 显示OK
59. 在线后将处理器转到运行状态,并右键单击Controller进入Properties栏。
60. 观察从站CPU的时间是否与主站一致,并单击OK结束。
恭喜你!如果你完成了上面所列的工作,那你就完成了实验五。