1.12.3 步骤
1.I/O分配
根据PLC输入/输出点分配原则及本案例控制要求,进行I/O地址分配,如表1-11所示。
表1-11 搅拌电动机的PLC控制I/O分配表
2.I/O接线图
根据控制要求及表1-11的I/O分配表,搅拌电动机的PLC控制的I/O接线图如图1-78所示。如果用户只有DC/DC/DC型S7-1200 PLC,如何驱动交流类负载呢?应采用图1-79所示电路的连接方法。在很多PLC的工业应用现场,为了保护PLC,常将高电压等级的负载与PLC通过低电压直流中间继电器隔离,无论是继电器型输出或是直流型输出的PLC,均采用图1-79所示的接法。
图1-78 搅拌电动机PLC控制的I/O接线图
3.创建工程项目
用鼠标双击桌面上的图标,打开博途编程软件,在Portal视图中选择“创建新项目”,输入项目名称“M_jb”,选择项目保存路径,然后单击“创建”按钮创建项目完成,并进行项目的硬件组态。
图1-79 直流型PLC的负载连接方法
4.编辑变量表
搅拌电动机的PLC控制变量表如图1-80所示。
图1-80 搅拌电动机的PLC控制变量表
5.编写程序
本案例要求搅拌工作结束后指示灯以秒级周期闪烁,秒级周期可通过定时器来实现,也可使用系统时钟存储器来实现。在此介绍系统存储器字节和时钟存储器字节的设置,本案例也采用默认设置。设置完成后,单击其窗口中“保存窗口设置”按钮进行设置保存。
(1)系统存储器字节的设置
用鼠标双击项目树某个PLC文件夹中的“设备组态”,打开该PLC的设备视图。选中CPU后,再选中巡视窗口中“属性”下的“常规”选项,打开在“脉冲发生器”文件夹中的“系统和时钟存储器”选项,便可对它们进行设置。单击右边窗口的复选框“启用系统存储器字节”,采用默认的MB1作为系统存储字节,如图1-81所示,可以修改系统存储器字节的地址。
图1-81 组态系统存储器字节与时钟存储器字节
将MB1设置为系统存储器字节后,该字节的M1.0~M1.3的意义如下。
●M1.0(首次循环):仅在进入RUN模式的首次扫描时为“1”状态,以后为“0”状态。
● M1.1(诊断状态已更改):CPU登录了诊断事件时,在一个扫描周期内为“1”状态。
●M1.2(始终为1):总是为“1”状态,其常开触点总是闭合的。
● M1.3(始终为0):总是为“0”状态,其常闭触点总是闭合的。
(2)时钟存储器字节的设置
单击右边窗口的复选框“启用时钟存储器字节”,采用默认的MB0作为时钟存储器字节,如图1-81所示。可以修改时钟存储器字节的地址。
时钟脉冲是一个周期内“0”状态和“1”状态所占的时间各为50%的方波信号,时钟存储器字节各位对应的时钟脉冲的周期和频率见表1-12。CPU在扫描循环开始时初始化这些位。
表1-12 时钟存储器字节各位对应的时钟脉冲的周期与频率
指定了系统存储器和时钟存储器字节后,这个字节就不能再用于其他用途,并且这个字节的8位只能使用触点,不能使用线圈,否则将会使用户程序运行出错,甚至造成设备损坏或人身伤害。
(3)编写程序
图1-82中符号地址比较长,若选择了显示符号地址或同时显示符号地址和绝对地址,程序编辑器将分两行或多行符号名,这样则增加了程序段的高度。当然可以通过设置程序编辑器的参数来加长显示符号的名称,执行工具栏的“选项”→“设置”命令,打开“设置”对话框,如图1-83所示。选中“PLC编程”文件夹下的“LAD/FBD(梯形图/功能块图)”,在右侧窗口的“操作数域”的“宽度”栏增加其宽度(默认值为8),并单击“保存窗口设置”按钮进行保存,再次打开程序块时,将执行“操作数域”的新的设置。
图1-82 搅拌电动机的PLC控制程序
图1-82 搅拌电动机的PLC控制程序(续)
6.调试程序
使用程序状态功能,可以在程序编辑器中形象直观地监视梯形图程序的执行情况,触点和线圈的状态一目了然。但是程序状态功能只能在屏幕上显示一个或几个程序段,甚至只显示一个程序段的部分,调试较复杂的程序时,往往不能同时看到与某一程序功能有关的全部变量的状态。
监控表可以有效地解决上述问题。使用监控表可以在工作区同时监控、修改和强制用户感兴趣的全部变量。一个项目可以生成多个监控表,以满足不同的调试要求。
图1-83 “设置”对话框
(1)用监控表监视与修改变量
监控表可以赋值或显示的变量包括过程映像(I和Q)、物理输入(I_:P)和物理输出(Q_:P)、位存储器M和数据块DB内的存储单元。
1)监控表的功能。
① 监控变量:显示用户程序或CPU中变量的当前值。
② 修改变量:将固定值赋给用户程序或CPU中的变量,这一功能可能会影响到程序运行结果。
③ 对物理输出赋值:允许在停止状态下将固定值赋给CPU的每一个物理输出点,可用于硬件调试时检查接线。
④ 强制变量:给物理输入点/物理输出点赋一个固定值,用户程序的执行不会影响被强制的变量的值。
⑤ 可以选择在扫描循环周期开始、结束或切换到STOP模式时读写变量的值。
2)用监控表监控和修改变量的基本步骤。
① 生成新的监控表或打开已有的监控表,生成要监控的变量,编辑和检查监控表的内容。
② 建立计算机与CPU之间的硬件连接,将用户程序下载到PLC。
③ 将PLC由STOP模式切换到RUN模式。
④ 用监控表监控、修改和强制变量。
3)生成监控表。
打开项目树中PLC的“监控与强制表”文件夹,用鼠标双击其中的“添加新监控表”,如图1-84所示,生成一个新的监控表,并在工作区自动打开它。根据需要,可以为一台PLC生成多个监控表。应将有关联的变量放在同一个监控表内。
图1-84 “添加新监控表”对话框
4)在监控表中输入变量(如图1-85所示)。
在监控表的“名称”列输入PLC变量表中定义过的变量的符号地址,“地址”列将会自动出现该变量的地址。在地址列输入PLC变量表中定义过的地址,“名称”列将会自动出现它的名称。
如果输入了错误的变量名称或地址,将在出错的单元下面出现红色背景的错误提示方框。
可以使用监控表的“显示格式”列默认的显示格式,也可以用鼠标右键单击该列的某个单元,在弹出的快捷菜单中选中需要的显示格式。用图1-85所示的监控表用二进制模式显示MW10,可以同时显示和分别修改M10.0~M11.7这16个位变量。这一方法用于I、Q和M,可以用字节(8位)、字(16位)或双字(32位)来监控和修改位变量。
图1-85 在线的监控表
复制PLC变量表中的变量名称,然后将它粘贴到监控表的“名称”列,可以快速生成监控表中的变量。具体方法如下:
① 用鼠标双击打开项目树中的“PLC变量”,用鼠标单击变量表中某个变量最左边的序号单元,该变量被选中,整个行的背景色加深。按住〈Ctrl〉键,用同样的方法同时选中其他变量。用鼠标右键单击选中的变量,执行出现的快捷菜单中的“复制”命令,将选中的变量复制到剪贴板。
② 用鼠标双击打开项目树中的监控表,用鼠标右键单击监控表的空白行,执行出现的快捷菜单中的“粘贴”命令,将复制的变量粘贴到监控表。
5)监视变量。
可以用监控表工具栏上的按钮来执行各种功能。与CPU建立在线连接后,单击工具栏上的按钮,起动“全部监控”功能,将在“监视值”列连续显示变量的动态实际值。
再次单击该按钮,将关闭监控功能。单击工具栏上的按钮,可以对所选变量的数值作一次立即更新,该功能主要用于STOP模式下的监控和修改。
位变量为TRUE(“1”状态)时,“监视值”列的方形指示灯为绿色。位变量为FALSE(“0”状态)时,“监视值”列的方形指示灯为灰色。
图1-85中的MW10为已循环次数,在搅拌机工作循环过程中,MW10的值不断增大。
6)修改变量。
监控表工具栏上的按钮用于显示或隐藏“修改值”列,在要修改的变量的“修改值”列输入变量新的值。输入Bool型变量的修改值“0”或“1”后,单击监控表的其他地方,它们将变为“FALSE”(假)或“TRUE”(真)。
单击工具栏上的“立即一次性修改所有选定值”按钮,或用鼠标右键单击变量,执行出现的快捷菜单中的“立即修改”命令,将修改值立即送入CPU,如图1-85所示。
用鼠标右键单击某个位变量,执行出现的快捷菜单中的“修改为0”或“修改为1”命令,可以将选中的变量修改为“0”或“1”。
单击工具栏上的按钮,或在“监控表”中右击,执行出现的快捷菜单中的“使用触发器修改”命令,在定义的用户程序的触发点,修改所有选中的变量。
如果没有起动监控功能,在“监控表”中右击,执行快捷菜单中的“立即监视”命令,将读取一次监视值。
在RUN模式下修改变量时,各变量同时又受到用户程序的控制。假设用户程序运行的结果使Q0.0的线圈得电,用监控表不可能将Q0.0修改或保持为“1”状态。在RUN模式不能改变I区分配给硬件的数字量输入点的状态,因为它们的状态取决于外部输入电路的通断状态。
在程序运行时如果修改的变量值出错,可能导致人身或财产的损害。执行修改变量值之前,应确认不会有危险情况出现。
7)在STOP模式下改变物理输出的状态。
在调试设备时,这一功能可以用来检查输出点连接的过程设备的接线是否正确。以Q0.0为例,操作的步骤如下:
① 在监控表中输入物理输出点Q0.0:P,如图1-86所示。
图1-86 在STOP模式下改变物理输出的状态
② 将CPU切换到STOP模式。
③ 单击监控表工具栏上的“显示/隐藏扩展模式列”按钮,切换到扩展模式,出现与“触发器”有关的两列。
④ 单击工具栏上的按钮,启动监控功能。
⑤ 单击工具栏上的按钮,出现“启用外围设备输出”对话框,单击“是”按钮确认。
⑥ 用鼠标右键单击Q0.0:P所在行,执行出现的快捷菜单中的“修改”→“修改为1”或“修改为0”命令(如图1-85所示),CPU上的Q0.0对应的LED(发光二极管)亮或熄灭,监控表中的“监视值”列的值随之改变,表示命令被送给物理输出点。
CPU切换到RUN模式后,工具栏上的按钮变成灰色,该功能被禁止,Q0.0受到用户程序的控制。
如果有输入点或输出点被强制,则不能使用这一功能。为了在STOP模式下允许物理输出,应取消强制功能。
因为CPU只能改写,不能读出物理输出变量Q0.0:P的值,“监视值”列中符号表示该变量被禁止监视(不能读取)。将光标放到图1-86第1行的“监视值”列时,将会出现帮助信息,提示不能监控物理输出。
(2)用监控表强制变量
1)强制CPU中的变量值。
可以用监控表给用户程序中的单击个变量指定固定的值,这一功能被称为强制(Force)。强制应在与CPU建立连接时进行。使用强制功能时,不正确的操作可能会危及人员的生命或造成设备的损坏。
S7-1200系列PLC只能强制物理I/O点,例如强制I0.0:P和Q0.0:P。不能强制组态时指定给HSC(高速计数器)、PWM(脉冲宽度调制)和PTO(脉冲列输出)的I/O点。在测试用户程序时,可以通过强制I/O点来模拟物理条件,例如用来模拟输入信号的变化。
在执行用户程序之前,强制值被送至输入过程映像,在处理程序时,使用的是输入点的强制值。
写物理输出点时,强制值被送给输出过程映像,输出值被强制覆盖。强制值在物理输出点出现,并且被用于过程。
变量被强制的值不会因为用户程序的执行而改变。被强制的变量只能读取,不能用写访问来改变其强制值。
输入/输出点被强制后,即使编程软件被关闭,或编程计算机与CPU的在线连接断开,或CPU断电,强制值都被保持在CPU中,直到在线时用编程软件停止强制功能。
用存储卡将带有强制点的程序装载到别的CPU时,将继续程序中的强制功能。
2)强制的操作步骤。
① 生成强制表,打开项目树中PLC的“监控与强制表”文件夹,双击其中的“强制表”,如图1-87所示,生成一个新的强制表,并在工作区自动打开它。
图1-87 用强制表强制I/O变量
② 在强制表中输入物理输入点I0.0:P和物理输出点Q0.0:P,如图1-87所示。
③ 将CPU切换到RUN模式。
④ 单击“强制表”工具栏上的按钮,起动监控功能。
⑤ 单击工具栏上的按钮,如图1-87所示,切换到扩展模式。
⑥ 在I0.0:P的“强制值”列输入1,单击其他地方,1变为TRUE(本步也可以在第7步后面)。
⑦ 用F列的复选框选中变量(复选框内打勾),复选框的后面出现中间有惊叹号的黄色三角形,表示需要强制该变量。工具栏上的按钮变为亮色,表示可以强制变量。
⑧ 单击工具栏上的按钮,或用鼠标右键单击某个变量,执行出现的快捷菜单中的“全部强制”命令,起动所有在F列强制功能的变量的强制。
第一次强制某个变量时,出现“全部强制”对话框,以后修改变量的强制值时,单击按钮,出现“替换强制”信息,单击是“是”按钮确认。强制成功后强制表中该行“F”列黄色的三角形符号消失,被强制的变量所在的行最左边和“监视值”列出现红色的标有“F”的小方框,表示该变量被强制。
I0.0被强制为“1”状态时,CPU上对应的发光二极管不会亮,但是被强制的值在程序中起使用。用同样的方法强制Q0.0:P后,CPU上Q0.0对应的LED亮,但是在“监视值”列仍显示(无法监视外围设备输出)。
也可以用鼠标右键单击要强制的位变量,执行出现的快捷菜单中的“强制0”或“强制1”命令,单击出现的对话框的“是”按钮确认,将选中的输入点变量的值强制为“0”或“1”。
3)停止强制。
用鼠标单击“强制表”工具栏按钮,或执行快捷菜单中的“强制”→“停止强制”命令,停止对所有地址的强制。被强制的变量最左边和输入点的“监视值”列红色标有“F”的方框消失,表示强制被停止。复选框后面的黄色三角形符号重新出现,表示该地址被选择强制,但是CPU中的变量没有被强制。
为了停止对单个变量的强制,可以清除该变量的强制列的复选框,然后重新起动强制。
4)显示CPU所有被强制的变量。
在调试结束,程序正式运行之前,必须停止对所有强制的变量的强制,否则会影响程序的正常运行,甚至造成事故。
上述停止强制的操作只能停止当前打开的强制表中被强制的变量。如果强制表不止一个,在别的强制表中也有变量被强制,强制表的表头最左边有图标闪动。用鼠标单击工具栏上的按钮,或执行快捷菜单中的“更新强制的操作数”命令,将在当前强制表中显示所有强制表中被强制了的地址,此时可以用当前的强制表停止全部被强制的变量。
如果被强制的全部变量在同一个强制表内,不能使用“更新强制的操作数”命令。
将调试好的用户程序和设备组态一起下载到CPU中(注意:因本案例设置了CPU的系统存储器字节和时钟存储器字节,它们属于“设备组态”,必须选中PLC文件夹将设备组态和程序块一起下载到CPU中,否则设备组态的内容将不会起效。后续项目若有设备组态项,下载项目同本案例),并连接好线路。
按下搅拌电动机起动按钮SB1,观察搅拌电动机是否起动并正向运行,15s后是否停止运行,休息5s后是否反向运行,反向运行15s后是否再次正向运行,如此循环是否为10次。循环结束后指示灯是否以秒级闪烁,无论何时按下搅拌电动机停止按钮SB2,搅拌电动机是否立即停止,且循环结束指示灯熄灭。若上述调试现象与控制要求一致,则说明本案例任务实现。