罗克韦尔(AB)PLC讲解,创建串级PIDE控制策略
串级控制
串级控制在过程控制工业领域中有着广泛的应用。传统串级设计具有两个显著的特征:存在两个嵌套的反馈控制回路,一个次级控制回路嵌在另一个主控制回路中。本实验串级控制过程的控制策略将实现Logix功能块编辑器对反应器单元温度的控制。随着快速动作的夹套温度控制回路对反应器夹套传热液态系统内的扰动作出响应,串级PID控制
将采取矫正措施。最终结果是:具有缓慢响应特性的温度控制回路(主回路),其“偏离允许误差范围”的总体时间最小化。
本实验内容:
• 创建程序和功能块例程
• 使用RSLogix5000在串级控制组态界面创建新的PIDE模块。
• 使用SRTP指令创建分程输出。
应用过程指令进行过程模拟。
创建程序和串级PID功能块例程
创建“
Area_01_250_Control_Task ”任务应用于温度控制例程而非程序中。为反应器01温度控制创建程序。1. 右击 Area_01_250ms_Control_Task ,然后创建新程序。命名新程序为‘REACTOR_01_TempLoops ’,点击OK
2. 右击 REACTOR_01_TempLoops ,然后创建新例程。命名新程序为 ‘A1_R1_TIC_116AB ’
确保Type:的选择是Function Block Diagram ,In Program or Phase的选择是Reactor_01_TempLoops 。点击 OK 关闭例程属性窗口,然后再点击 OK 。
3. 双击 REACTOR_01_TempLoops 程序,打开属性窗口 ,然后点击Configuration,选择 A1_R1_TIC_116AB 作为主例程,点击OK 。
4. 双击控制器项目管理器中 A1_R1_TIC_116AB 例程,打开一个空例程。
5. 点击工具栏的Process 选项卡
出现Process指令的菜单栏。
6. 将鼠标移动到指令类型的PIDE指令
7.在工具栏的Process 选项卡上,点击“PIDE”功能块两次,在编辑区产生两个PIDE功能块。这两个PIDE功能块出现在图上(PIDE_01和PIDE_02)。
8. 在菜单栏上点击 View > Fit to Window ,调整编辑区大小。
9.点中后拖动PIDE_02,这样每个PIDE功能块周围都能留有一定的操作空间。
10.如果需要放大或缩小,点击工具栏上的缩放按钮。
11. 连接PIDE_01 的输出 CVEU 到PIDE_02 设定输入 SPCascade 如下所示:
点击PIDE_01的CVEU输出引脚,然后点击PIDE_02的 SPCascade 引脚,当变绿后就连接上了。
回顾串级PIDE指令的额外注意事项如下
过程应用注意事项
PIDE指令具有内嵌的功能,可以处理串级回路。
串级/ 比率模式:
次级回路可以设定成串级模式,也可以设定成自动模式。次级回路为串级模式时,主回路的输出作为次级回路的设定值;次级回路为自动模式时,我们可以直接为设备夹套输入温度设定值。
初始化:
若次级回路不用串级模式,主回路就要停止控制,因为它不再影响控制过程,同时应使它的输出等于次级回路的设定值,这样当次级回路恢复串级模式时,主回路可以平滑过渡启动控制。
Windup 饱和:
当次级回路达到输出或设定值的限度时,主回路应该在限度方向上停止合成。例如,如果次级回路达到了输出上限,主回路应当在正方向上不再合成。以本实验为例,如果次级回路已将冷却阀达到了100%,主回路再继续要求更多的冷却就没有意义了,因为次级回路不能再提供更多的冷却。
组态初始化和饱和参数
依据上面的叙述,我们需要进行附加参数的设定。首先对于主回路,需要设定CVInitReq 和CVInitValue 引脚的可见性。当次级回路不采用串级模式时,这些将用来设定主回路的初始化。
1. 通过点击PIDE-01的
按钮,显示主回路的参数 ,点击 Parameters 选项卡, 向下滚动鼠标找到
CVInitReq 和CVInitValue 参数,选中参数的可见性复选框 ,如下所示:
点击 Apply 和 OK ,关闭PIDE 属性对话框。
13. 显示次级回路 PIDE_02 的 InitPrimary 参数,选中该参数的可见性复选框,操作同上。
14. 连接初始参数。点击次级回路设定输出引脚PIDE_02.SP ,再点击主回路CVInitValue 引脚PIDE_01.
CVInitValue ,连接初始值。点击次级回路InitPrimary 引脚 PIDE_02.InitPrimary ,再点击主回路CVInitReq 引脚 PIDE_01.CVInitReq ,连接初始请求。在任意空白区域点击,此时编辑区类似下图所示:
注意InitPrimary到CVInitReq的连接是布尔量连接(虚线),SP到CVInitValue的连接是实数连接(实线)。
这些连接使次级回路(PIDE_02)准备好,向主回路(PIDE_01)发出请求进行初始化,主回路利用当前次级回路设定值自行初始化。这可使自动模式到串级模式平滑过渡。
下一步,使能PIDE模块的Anti-Windup抗饱和复位特性。
15. 点击PIDE_02 的按钮,显示次级回路的参数,点击 Parameters 选项卡,滚动鼠标找到 WindupHOut 和
WindupLOut 参数,点击复选框选中以显示他们。
16. 重复上述操作显示PIDE_01 的 WindupHIn 和 WindupLIn 参数。
17. 将PIDE_02的WindupHOut引脚连接到PIDE_01的WindupHIn引脚,PIDE_02.WindupLOut引脚连接到PIDE_01的WindupLIn引脚。
现在配置情况如下图所示:
同样当次级回路达到限度时,这些连接会限制主回路的动作。
18. 点击主工具栏上的
图标,校验例程。
在结果窗口将看到下面的错误提示:
检查功能块图,您会注意到在主回路PIDE模块和次级回路PIDE模块上都有“X”标记。
过程应用注意事项
功能块中,执行流程是从次级回路到数据流,这是至关重要的。实际上,执行流程是由数据流决定的。如下
所示,功能块图展示了在输出过程对数据的中间计算和操作。
实际执行指令次序只是与数据流路径相关的。当操作(指令)是从‘上游’到‘下游’执行时,明确指令的实际执行次序就不再重要。
“X ”是模块上存在错误的指示标记。在这种情况下,出错原因是数据流方面出现了一些问题。每当以数据流中“下游”模块的反馈量作为输入时,您必须确定依照执行次序的规则哪个输入量应当首先被解决处理,以此决定哪个模块要最先执行。
19. 右击从 PIDE_02.InitPrimary 到 PIDE_01.CVInitReq 的反馈线,选择Assume Data Available.
20. 对连接到 PIDE_01 上的其余3条连线重复上述操作 这就解决了执行次序的问题,也对例程进行了校验。 完成后,每条线上都有了箭头,如下:
一些基本操作参数需要在PIDE 指令中设置。PIDE_02的串级设定功能要通过设置AllowCasRat参数才能激活。
21.点击PIDE_02 的查看模块属性的省略号按钮打开属性界面,点击Cascade/Ratio 选项卡。点中复选框AllowCascade/Ratiomode ,激活此模式。
22.现在要把I/O连接添加到例程中。点击工具栏的输入参考值符号和输出参考值符号,插入两个输入参考值和一个输出参考值。每点击工具栏一次,参考值添加一次。
23. 按下图所示拖动模块重新布置,将输入连接到PIDE_01的PV引脚和PIDE_02的PV引脚,输出连接到PIDE_02的CV引脚。
该项目的标签已经作为控制器作用域标签而创建了,但它们在例程中被引用。
24. 为PIDE_01的 PV input reference 键入 ‘TT_116’ ,或者双击后从下拉菜单中查找。
25. 为 PIDE_02的 PV input reference 键入‘TT_117 ’ ,或者双击后从下拉菜单中查找。
26. 从 PIDE_02的 CV output reference 类型中查找’Product_Temp_Dmd ’ 或者双击后从下拉菜单查找。 组态效果当如下所示:
1. 在PIDE_01 指令上点击查看模块属性的省略号按钮
,打开属性界面,点击Tag 选项卡后,重命名
PIDE_01指令的标签。
将PIDE_01标签名称改为‘TIC_116 。
28. 在PIDE指令上设定工程单位标定,点击EUs/Limit s选项卡,输入下列数值:
• 100%时PV最大值的跨度设置为‘250 ’
• 0%时PV最小值的跨度设置为‘0 ’
• SP上限值设置为‘250 ’
• SP下限值设置为‘0 ’
因为这个PID的输出用于创建PIDE_02 的串级设定点输出,所以按照如下信息设定CV工程单位范围,以使夹套温度控制器的“串级模式 “的设定点范围达到预设值:
• 100%输出时CV 最大值设置为‘200’
• 0%输出时CV最大值设置为‘0’
29. 点击General Configuration选项卡,设置PID初始比例积分增益,获得一定初始位移。在后面实验中的自动调整功能将代替这些操作,点击Ok 。
30. 在PIDE_02 指令上点击查看模块属性的省略号按钮,打开属性界面,点击Tag选项卡,重命名PIDE_02指令的标签。
将PIDE_02标签名称改为‘TIC _117 。
31. 在PIDE指令上设定工程单位标定,点击EUs/Limits选项卡,输入下列数值:
• 100%时PV最大值的跨度设置为‘250 ’
• 0%时PV最小值的跨度设置为‘0 ’
• SP上限值设置为‘250 ’
• SP下限值设置为‘0 ’
该PID的输出作为输出需求CV工程单位%输出,如下:
• 100%输出时的CV 最大值设置为‘100 ’
• 0%输出时的CV最大值设置为‘0 ’
32. 点击General Configuration选项卡,设定PID初始比例积分增益,获得一定初始位移。在后面实验中自动调整功能将代替这些操作,点击OK 。
33.双击PIDE模块右下角的Autotune ? 标签输入框,为两个PIDE指令分配自动调整标签。
34. 点击下拉框,双击菜单中的 AUTOTUNE 选项卡。
35.点击主菜单栏上的
图标,校验该例程。在结果窗口中,将看到下面的错误提示:
使用分程时间比例(SRTP) 指令
在我们的示例应用中,有一个必须控制反应器温度的典型场景。其中包括从周围环境温度加热到想要的运行温度,并在反应过程中进行冷却。该实例中反应过程是放热的,因此,在反应过程中,用冷却的办法来维持想要的反应器的温度是很关键的。
我们的应用实例使用了通常的分程控制方案,其中单一控制器的输出分开两个调节阀。在分程控制策略中,如果夹套温度控制器输出量在0到50%之间,冷却的CTW阀会打开;如果夹套温度控制器输出量在50到100%之间, Dowtherm阀会打开。
Logix5000分程时间比例(SRTP)指令采用百分比输入值(0%~100%)并转换为占空比离散输出。例如如果输入值设定为50%,指令周期设定为5秒,离散输出将有2.5秒时间为开通2.5秒时间为关断。在以总周期时间的百分比输入作为开通时间的场合,这个周期将会重复。SRTP指令的一般应用在大功率电热丝的温度控制中。在这些应用中,功率的模拟量控制要么不切实际,要么成本太高。时间比例继电器或类似设备可以把功率应用于不带连续模拟量调节的加热器。同样,通常用脉冲电磁阀控制冷却液流量实现冷却作用。
该指令也有模拟量输出。可以将模拟量输入信号分程为两个不同的模拟量输出,其范围由时间比例决定。这种功能可用于某些应用场合,同一个模拟量信号控制两个执行机构,且这两个执行机构要求有不同的比例尺度。(例如反应器温度控制应用中,既有加热阀执行机构又有冷却阀执行机构)。
通常,输入(%)到输出(%)的映射如下所示:
注意‘MaxXXXXIn’可以小于或大于‘MinXXXXIn’参数。这对于在一端或两端进行反向控制是很有用的。(例如: 加热/冷却配对控制中的冷却控制的输入数值下限比较高)
过程应用注意事项
‘MaxXXXXIn’可以小于或大于‘MinXXXXIn’的特性使该指令可以用于粗略/精细控制策略。一个粗略/精细控制策略使用两个控制阀(CV),一个大的一个小的,在过程中具有补充作用。大的CV能对需求变化快速响应,
但通常分辨率较低。小的CV可以提高分辨率,增强可调性。
组态SRTP
现在看一下如何组态SRTP指令。SRTP指令参数确定了输入值和每个输出值的最小值和最大值,确定了离散输出的周期(循环时间)。
本实验Reactor_01_TempLoops程序位于执行缓慢的任务中,因为过程变量是容器温度,不能进行快速物理变化。通常SRTP指令在较快速高优先级的周期型任务中执行,以便保持高分辨率和精确的脉冲输出。即使在本实验中没有用到脉冲输出,SRTP指令已应用在了快速的10ms周期型任务中,该任务包含需要有快速执行时间的例程。
36 在控制器项目管理器打开Area _01_10ms_Fast _Control 任务中的REACTOR_01_Fast_Control 程序。
37. 双击打开SRTP 例程 。
在该例程工具栏的过程功能指令集中包含了用于多回路的SRTP指令。
38.在表单工具栏的描述框内输入‘PIC_118Split Range ’,确定当前活动表单(Sheet1of2)。
39。在下拉菜单中点击Sheet 2,选择表单2。
40.在表单工具栏的描述框内输入‘TIC_116 Split Range ’,确定当前活动表单(Sheet 2 0f 2)。输入对该表单的描述内容。
41. 点击SRTP模块上的省略号按钮,访问其参数。
42. 点击Insert Factory Defaults 按钮,
复位指令参数。理想的运行情况图形描绘如下:
将下面的‘映射’关系用于SRTP参数:
• MinHeatIn = 50% 当 PIDE.CV=50%, Heat%=0%
• MaxHeatIn = 100% 当 PIDE.CV=100%, Heat%=100%
• MinCoolIn = 50% 当 PIDE.CV=50%, Cool%=0%
• MaxCoolIn = 0% 当 PIDE.CV=0%, Cool%=100%
• 如果需要脉冲输出,则下面的参数也要满足:
• MinHeatTime = 0 sec 0秒的最小加热时间相应于0%加热
• MaxHeatTime = 10 sec 10秒的最大加热时间相应于100%加热
• MinCoolTime = 0 sec 0秒的最小冷却时间将相应于0%冷却
• MaxCoolTime = 10 sec 10秒的最大冷却时间将相应于100%冷却
SRTP功能块必须有下列定义参数才能运行: CycleTime, MinHeatIn, MaxHeatIn, MaxHeatTime。
如果必须分程控制,那么运行前还需要有下列参数:MinCoolIn, MaxCoolIn, MaxCoolTime。
不管何种应用,要实现模块功能,CycleTime参数必须为非零值。
其余参数可以保持其默认值。
因为‘null’点(不加热不冷却)位于PIDE.CVEU=50%时,所以通过使用PIDE中的PIDE.CVInitValue参数,在程序中将PIDE设置为在50%时初始化。
43.在上述必备参数基础上,既然周期参数、MaxHeatTime 和MaxCoolTime 参数都是必需的,参数值都输入‘10’。依照下面图表设定MaxHeatIn,MinHeatIn, MaxCoolIn, MinCoolIn 参数。
44.确保EnableOut参数设定为1,点击OK ,关闭属性对话框。SRTP指令将单一PIDE输出分为两个模拟量范围,如下所示:
仿真实验概述
下面部分将展示一些功能块指令,着重说明Logix平台和其编程语言的灵活性。
本实验的仿真是基本的,但它为工程师提供了在许多复杂应用和过程解决方案中用到的各种工具。由于在本实验中没有I/O,为此,我们为仿真逻辑创建了专门的任务和带有例程的程序,生成输入输出标签数据、闭环、反应过程变化和仿真设备,如电机、阀门及泵类。
大多数非积分控制过程可由一系列死区延迟和一阶滞后环节模拟。在我们实验中,模拟的两个回路是动作较迟缓的“Primary”, Product Temperature回路和响应快速的“Secondary”, Jacket Temperature回路。
用于仿真的功能块指令有“死区”(DEDT)模块,超前-滞后(LDLG)模块和函数发生器(FGEN)。死区(DEDT)指令提供了延迟并反映了过程死区时间或迟滞时间。超前-滞后(LDLG)指令提供了一个过程滞后时间。函数发生器(FGEN)指令用于描绘输出特性并将信号转换到过程工程单元。
回顾并编辑温度仿真逻辑
1. 点击Simulation Task ,然后选择Simulation Program
2. 右击All_Simulation 功能模块例程,然后点击open ,打开例程逻辑。
3. 在表单工具栏上点击next sheet ,进入例程的下一页。
4. 确保表单工具栏的指示框内容为TIC116ab S Range simulation ,以校验该温度模拟仿真。
您将会看到下面的功能块逻辑。
由于SRTP提供了两个独立的输出,并且它们的“过程特性”是独立的,分别为加热过程和冷却过程创建了一套死区和迟滞指令。本实验中我们规定它们是相同的。两者的联合作用传到用于描绘输出特性和设定温度范围比例尺度的函数信号发生器,模拟快速响应的“次级”夹套温度TT_117。然后这又反馈到另一套死区和迟滞指令,模拟动作较缓慢的主反应器温度TT_116。
5. 点击省略号按钮并在属性对话框中选择Parameters Tab ,打开SRange DEDT_01 死区模块参数对话框。
6. 确保该模块的死区时间为‘3.0 ’,增益为‘1.25 ’,点击OK 。
7. 双击省略号按钮,在属性对话框选择 Parameters 选项卡,然后对SRange_DEDT_02 死区模块参数重复上述操作步骤。使死区时间为‘3.0 ’秒,增益为‘1.25 ’。
8. 点击省略号按钮并在属性对话框中选择Parameters 选项卡,打开SRange_LDLG_02 超前-滞后模块参数对话框。
9. 确保滞后值为15秒,增益为1.0。
10. 对SRange_LDLG_01 模块重复上述操作步骤。
函数信号发生器指令给出了独立输入变量(X_In)并通过XY图形定义了‘曲线拟合’输出(Y_Out)。图形是通过数组与指令的联合获得的。X值包含在单维数组中(X_数组),相对应的Y值包含在另一个单维数组中(Y_数组)。这些数组在指令前被确定。当输入一个输入值,函数发生器将在X_数组(或在输入框中添加)中找到该数值,并在Y_数组中返回相应的值(或添加)作为输出。
11. All_Simulation例程中在过程指令组内包含了函数信号发生器指令。
12. 点击省略号按钮打开SRange_FGEN_02函数信号发生器模块参数对话框。
13.滚动鼠标指针指向XY1Size参数描述说明,并保持指向状态。
该参数值指示了输出曲线上能够显示的分段数量。点击OK 关闭对话框。
14. 右击输出标签数组SRange_FGEN_02Y1
15.选择监视 “SRange_FGEN_02Y1 ”,打开标签编辑器
1. 在监控标签窗口中点击
,展开SRange_FGEN_02Y1 输出。
该数组定义了函数信号发生器输出曲线分段以及仿真输出范围。
17. 在监控标签窗口,向上查找标签,展开SRange_FGEN_02X1 输出数组。
该数组定义了函数信号发生器相应于输入曲线分段的输入范围。
18. 双击All_Simulation 功能块例程,返回原例程。
19. 点击省略号按钮并在属性对话框中选择Parameters 选项卡,打开SRange DEDT_03 死区模块参数对话框。注意死区时间大于次级或夹套温度.。这是从夹套到反应器产品传热的休整延迟时间。
20. 点击OK 关闭对话框。
21. 点击主工具栏上的
图标,校验该例程。在结果窗口中将看到下面错误提示:
22. 点击工具栏上的Save 图标,保存该项目。
23. 保存项目后,点击控制器状态栏上的控制器图标然后选择下载,将项目下载到控制器上。
24. 当出现用于确认项目和目标控制器的下载提示对话框时,选择Download 。
25.项目下载完成后,返回控制器状态栏点击控制器图标并在下拉菜单中选择Run Mode ,将控制器设置为运行模式。
26. 然后在确认对话框中点击Yes 。
状态和例程窗口边沿变为绿色
罗克韦尔(AB)PLC讲解,4、RS5000、Studio5000编写梯形图完整版
创建了任务、程序、例程以及所需标签后,我们需要编写工作站(冲压、卷边和焊接)、 传送带和站调度梯形图逻辑程序。RSLogix5000 编程软件支持梯形图、功能块、顺序功能图、结构文本等编程语言,用户可以根据自己的需求灵活选择编程语言。对于本例,我们 选择梯形图编程语言。
本实验主题:
1. 输入梯级和指令
2. 使用快捷键输入指令和梯级元素
3. 输入分支
4. 掌握常用指令,如输入、输出、定时器、跳转子程序等。
5. 在多个项目间复制梯级
6. 校验梯形图逻辑
实验步骤:
1. 双击桌面上图标,打开 RSLogix5000 软件。
2. 单击 File->Open,选择上一实验所创建项目 P1 并打开。
3. 输入梯形图逻辑。右键单击 Assembly->Program_1_Press->Routine_Dispatch,从弹出菜单中选择 Open(打开),如图 2-21 所示。
4.在弹出的编程窗口中编写调度例程,如图 2-22 所示。
注意出现在右边窗口的梯级,此梯级处于编辑(Edit)模式,在梯级的左边标着“e”。现在可以添加指令和梯级了。
5. Routine_Dispatch 主例程的作用是初始化子例程、调度子例程。初始化子程序将
Station_1_Press 例程中 StationTimer 的计时累加值清零。如果标签 Call_Program_Value(调用程序号)由 Station_Dispatcher 例程设定为 1,则跳转到子例程 Station_1_Press 中。
首先,输入一个相等(EQU)指令(属于 Compare 类),单击 EQU,它就出现在梯级
的相应位置,如图 2-23 所示。
注意:您也可以将其拖到梯级上,或者双击“e”标记,然后在弹出的窗口中输入 EQU, 或者按下Insert 键,输入 EQU。
无论您采用哪种方法,现在都能够获得EQU 指令,出现如图2-24 所示画面:
6. 现在您需要在 EQU 指令的 SourceA 和 SourceB 处输入正确的标签地址。所有需要用到的标签我们在上一实验中都已经创建好了,这时,我们仅需双击问号,然后单击向下 箭头,如图 2-25 所示。
您可以在 Controller Scoped Tags 和 Program Scoped Tags 之间切换画面。回顾上次实验
内容,因为 Call_Program_Value 会在多个程序中使用,故作用域为 Controller Scoped Tags。
需要注意的是,如果一个标签被定义为 Program Scoped Tags,那么,只有属于这个Program 的 Routine 才可以对此变量进行读/写操作。
7. 双击 SourceB,直接输入立即数 1。如果不采用立即数方式,而采用标签的方式,
那么您可以右键单击 Source B 的问号,如图 2-26 所示。
8.弹出如图 2-27 所示画面。为了与本实验保持一致,请采用下例中的名称,并配置成相应属性。或者,直接使用立即数 1。
9. 按照上述方法,为 Assembly->Program_1_Press->Routine_Dispatch 例程创建如图2-28 所示梯形图逻辑,添加清除定时累加值所需指令 ONS 和RES。按下Insert 键,直接输入指令名称。由于本次实验中用到了的指令较多,不能一一介绍,对于不清楚的指令,您可以直接与指导老师沟通,或单击 Help->Instruction Help(指令帮助),查阅相关指令的帮助。
10. 创建梯形图分支。在 Routine_Dispatch 例程中,对 Station_1_Press 例程中定时器累加值清零后,梯级需要跳转到 Station_1_Press,开始执行压缩机部件的冲压工序。由于计时器累加值清零程序的输入条件与跳转指令相同,故我们需要将两个输出并联,但一定 要注意,输出并联梯级的顺序不能交换。
单击EQU 梯级指令,然后在工具条中选择 Branch,如图 2-29 所示
单击Branch,然后将其一端拖拽到所需位置,释放鼠标左键,如图 2-30 所示:
然后,添加跳转到子例程指令 JSR。按下 Insert 键,直接输入指令名称。对于不清楚
的指令,请单击 Help->Instruction Help(指令帮助),查阅相关指令的帮助,如图 2-31 所示。
11. 最终,创建完成的 Assembly->Program_1_Press->Routine_Dispatch 例程如图 2-32
所示。
12. 将 Assembly->Program_1_Press->Routine_Dispatch 中 的 梯形图 逻辑 复 制到
Assembly->Program_2_Stake->Routine_Dispatch。
13. 将该梯形图逻辑粘贴到 Assembly->Program_2_Stake->Routine_Dispatch 例程后, 修改以下参数,如图 2-33 所示。
- 将 EQU 指令中 SourceB 参数改为 2。
- 将 JSR 指令中Routine Name 参数改为 Station_2_Stake。
14. 将 Assembly->Program_1_Press->Routine_Dispatch 例程中梯形图逻辑复制到
Assembly->Program_3_Weld->Routine_Dispatch 中,修改以下参数,如图 2-34 所示。
- 将 EQU 指令中 SourceB 参数改为 3。
- 将 JSR 指令中Routine Name 参数改为 Station_3_Weld。
注意: 由于程序功能类似,我们通过简单的 Copy+Paste 就完成了程序的编写,无须重
修改标签,那么,我们可以想象,如果有多个冲压工作站,我们只需编写一个冲压工作站
的程序,其余的只需 Copy+Paste 就可以完成!
1. 单击工具条上
校验每个例程,出现错误提示后,纠正错误。然后,单击工具 条上
按钮校验整个项目并纠正出现的错误。
16. 在 Assembly->Program_1_Press->Station_1_Press 中,输入如图 2-35 所示梯形图逻辑。
17. 用户可以直接将 Assembly->Program_1_Press->Station_1_Press 例程的梯形图逻
辑直接复制到 Assembly->Program_2_Stake->Station_2_Stake 例程后,修改如下参数:
-将StationTimer 的 Preset(预设值)改为 2000;
注意 :选择多行梯级可以按下 Shift(上档)键,依次单击想要选择的梯级即可。
修改后的结果如图 2-36 所示:
18. 用户可以直接将 Assembly->Program_1_Press->Station_1_Press 例程的梯形图逻
辑直接复制到 Assembly->Program_3_Weld-> Station_3_Weld 例程后,修改如下参数:
-将StationTimer 的 Preset(预设值)改为 3000;
-StationTimer 定时结束后,添加 Complete 输出,表示三道工序都已经完成,用于控制 Conveyor 输出。
修改后的结果如图 2-37 所示:
19. 单击工具条上
校验每个例程,出现错误提示后,纠正错误。然后,单击工具 条上
按钮校验整个项目并纠正出现的错误。
20. 保存该项目。
21. 至此,三个工作站的程序已经完成了,我们发现在创建过程中,实际上,仅仅程 序 Program_1_Press 是自己创建的,其它两个程序都是对第一个程序的 Copy+Paste 以及一些简单的修改。那么,用户可以先将程序 Program_1_Press 的标签、例程创建完成后,再复制、粘贴、修改以及校验。注意:标签名称为什么不会冲突?
22. 接下来我们编写 Conveyor ( 传送带)例程的梯形图逻辑, 双击任务
Conveyor->Conveyor->Conveyor 例程,编写如图 2-38 所示梯形图逻辑。
第 0 行梯级用于对光眼故障(接线故障)的报警。第 1、2 行梯级用于控制传送带输出。
23. 继续编写工作站调度例程。双击 Periodic_Dispatcher->Station_Dispatcher->Station
_Dispatcher 例程,编写如图 2-39 所示梯形图逻辑。
其中,梯级 0 用于生成压缩机产品编号。梯级 1 用于判断三道工序是否正在工作。梯
级 3、4 用于调度工作站。
24.
单击工具条上 校验每个例程,出现错误提示后,纠正错误。然后,单击工具
条上 按钮校验整个项目并纠正出现的错误。
我们使用例程和项目校验工具时只能查出程序中出现的语法错误;不能查出程序中的 逻辑错误。但是现场条件往往不允许直接连接 I/O 模块调试。通过趋势图,我们可以观察时序,进而分析程序逻辑关系是否正确。
25. 单击菜单 File-> Save 选项,保存该项目,如图 2-40 所示。
26.单击选择资源管理器中 Trends(趋势图)文件夹,右键单击并从弹出菜单中选择New Trend(创建新趋势图),如图 2-41 所示。
27. 从弹出的对话框中命名新趋势图 Compressor,单击 OK,如图 2-42 所示。
28. 弹出 Add/Configure Tags(添加/组态标签)对话框,从 Scope(作用域)中选择Controller(控制器)或其它程序,然后从 Available Tags(可用标签)中选择标签,单击Add(添加)键,您可以在 Tags to Trend(建立趋势图的标签组)看到所添标签。若要从Tags to Trend 中移除所添标签,单击 Remove(移除)键。按图 2-43 所示添加所需监视的标签。
29. 弹出趋势图画面,在画面单击鼠标右键,从弹出菜单中选择 Chart Properties(图表属性),如图 2-44 所示。先选择Display(显示)选项卡,将 Background color(背景色)改为白色。
30. 选择 X-Axis(X 轴)时间轴选项卡,设置相应参数如图 2-45 所示:
31. 选择 Y-Axis(Y 轴)选项卡,设置相应参数如图 2-46 所示。设置完成后,单击
OK 键。
32.设定完Trends(趋势图)参数后,创建的趋势图如图 2-47 所示:
33. 接下来,我们要将该程序下载到控制器中运行,通过趋势图观察其运行结果是否 正确。下载前确认您所使用的 Logix5555 控制器的钥匙处于 Remote 位置,且程序处于离线状态。单击菜单 Communications->Who Active,弹出如图 2-48 所示对话框。
34. 单击 Download(下载)按钮,将该程序下载到控制器中。如果您的控制器正处于Remote Run(远程运行)状态,将弹出如图 2-49 所示警告。
35.单击 Download(下载)按钮,出现下载进程,如图 2-50 所示。
36. 程序下载后,将控制器打到运行状态,用户通过扭动控制器上的钥匙实现,也可以鼠标左键单击如下图所示的 Online(在线工具栏),从弹出菜单中选择 Run Mode(运行模式),如图 2-51 所示。
37. 改变控制器运行模式后,用户首先双击已创建的 Compressor 趋势图,弹出趋势图画面,并单击 Run(运行),开始实时绘制曲线。
38.. 接下来通过手动触发 PartSensor 标签, 使模拟的生产线运行起来。双击Station_Dispatcher(站调度)例程,弹出程序窗口,触发梯级 2 中标签 PartSensor。如图 2-52 所示:
39.双击 Trends->Compress,切换到趋势图,并观察到时序图如图 2-53 所示:
至此,您已完成梯形图程序编写的相关实验!
相关问答
美国罗克韦尔的PLC是否真的很好?就是我们常用的AB的PLC?
很多优点。关键性的不同是,ABPLC的通信特色。一般PLC在采集数据时使用CPU扫描,也就是我们所熟知的“循环扫描”。而AB不同在于,各模块的数据由背板采集,也...
abplc下载的三种方法?
abplc下载有三种方法。1.第一种方法是在abplc的官方网站下载。2.第二种方法是在一些软件下载网站下载。3.第三种方法是在一些第三方软件平台下载。1.在a...
abb机器人与ABplc之间通讯设置?
1.可以通过适当的设置实现abb机器人与ABplc之间的通讯。2.通讯设置需要考虑以下几个方面:a.硬件连接:需要通过适当的接口将abb机器人和ABplc连接起来。...
ABplc是怎么编址的,远程又是如何编址的?
ab的controllogix系列plc没有地址的概念,而是采用符号名编程某一个模块的通道只要标记一个变量名,以后就能直接访问了,无需关心什么地址远程io也是一样ab...
ABPLC与SIEMENSPLC编程软件怎么安装在同一台笔记本电脑上...
楼上回复的还是比较全的,首先电脑里一定要有编程软件,而且不懂你们公司为什么用...正解是:西门子S7-200PLC485通讯协议,而非232,。解决办法就是搞一个232转485...
ABplc是什么牌子?
ABplc是一家知名的跨国公司,专注于工业自动化和控制系统领域。该公司提供各种先进的自动化解决方案,包括工厂自动化、过程控制、机器人技术等。ABplc的产品广...
ABplc如何与电脑连接通讯?
ABplc与电脑连接通讯方法:1.在此电脑,右键,管理,查看找到设备管理器,插好USB-PPI电缆(一头连电脑,一头连PLC),电脑设备管理器就会弹出端口USB-SERLALCH...
ABPLCfor指令详细介绍?
ABPLCfor指令是一种在PLC程序中循环执行特定代码块的指令,可以指定循环次数或者条件来控制循环的结束。该指令常用于控制系统中需要重复执行的任务,如循环检...
ABplc程序怎么看?
可以通过以下几种方式进行查看:使用ABPLC编程软件:ABPLC编程软件通常是RSLogix500或RSLogix5000,可以通过该软件打开PLC程序并进行查看和编辑。在软件中...
ABPLC怎么供电的?
ABPLC采用电源模块供电,通常使用交流电源作为输入源。电源模块负责将高压交流电转换为合适的直流电压供给ABPLC系统。在电源模块内部,交流电通过整流、滤波、...