1)掌握计数器指令的应用。
2)掌握直流输出型CPU驱动交流负载的方法。
3)掌握系统和时钟存储器字节的使用。
4)掌握使用监控表监控和调试程序的方法。
使用S7-1200 PLC实现电动机的循环起停控制,即按下起动按钮,电动机起动并正向运转5s,停止3s,再反向运转5s,停止3s,然后再正向运转,如此循环5次后停止运转,同时循环结束指示灯以频率1Hz闪烁,直至按下停止按钮;若按下的停止按钮松开时,电动机才停止运行。该电路必须具有必要的短路保护、过载保护等功能。
1.I/O分配
根据PLC输入/输出点分配原则及本案例控制要求,进行I/O地址分配,如表1-6所示。
表1-6 电动机的循环起停控制I/O分配表
2.I/O接线图
电动机的循环起停控制主电路如图1-47所示。根据控制要求及表1-6的I/O分配表,电动机的循环起停控制I/O接线图如图1-48所示。
3.创建工程项目
双击桌面上的 图标,打开TIA博途编程软件,在Portal视图中选择“创建新项目”,输入项目名称“M_xunhuan”,选择项目保存路径,然后单击“创建”按钮,创建项目完成。
4.编辑变量表
本案例要求电动机起停循环结束后指示灯以频率1Hz闪烁(秒级闪烁),如果使用定时器来实现则需要两个定时器,如果采用CPU集成的时钟存储器来实现则会方便许多。同时,CPU还可集成为多个特殊位寄存器,在PLC的编程中作用重大,故在此加以介绍。
图1-47 电动机的循环起停控制主电路
图1-48 电动机的循环起停控制I/O接线图
S7-1200 PLC通过CPU模块的参数设置来实现系统常用的某些特殊位,如首次扫描接通一次特殊位、始终为1(高电平)特殊位等。
(1)系统存储器字节设置
双击项目树某个PLC文件夹中的“设备组态”,打开该PLC的设备视图。选中CPU后,再选中巡视窗口中“属性”下的“常规”选项,打开位于“脉冲发生器”文件夹下的“系统和时钟存储器”选项,便可对它们进行设置。单击右边窗口的复选框“允许使用系统存储器字节”,采用默认的MB1作为系统存储字节,如图1-49所示。可以修改系统存储器字节的地址。
将MB1设置为系统存储器字节后,该字节的M1.0~M1.3的意义如下。
1)M1.0(首次循环):仅在进入RUN模式的首次扫描时为“1”状态,以后为“0”状态。
2)M1.1(诊断图形已更改):CPU登录了诊断事件时,在一个扫描周期内为“1”状态。
3)M1.2(始终为1):总是为“1”状态,其常开触点总是闭合的。
4)M1.3(始终为0):总是为“0”状态,其常闭触点总是闭合的。
(2)时钟存储器字节设置
单击右边窗口的复选框“启用时钟存储字节”,采用默认的MB0作为时钟存储字节,如图1-49所示。可以修改时钟存储字节的地址。
时钟脉冲是一个周期内“0”状态和“1”状态所占的时间各为50%的方波信号,时钟存储器字节每一位对应的时钟脉冲的周期与频率见表1-7。CPU在扫描循环开始时会初始化这些位。
表1-7 时钟存储器字节每一位对应的时钟脉冲的周期与频率
图1-49 组态系统存储器字节与时钟存储字节
注意: 一旦指定了系统存储器和时钟存储字节后,这个字节就不能再用于其他用途(并且这个字节的8位只能使用触点,不能使用线圈),否则将会使用户程序运行出错,甚至造成设备损坏或人身伤害。
本案例变量表如图1-50所示。
图1-50 电动机循环起停控制变量表
5.梯形图程序
根据要求,使用起保停方法编写的梯形图如图1-51所示。
6.调试程序
使用监控表可以在工作区同时监控、修改和强制用户感兴趣的全部变量。一个项目可以生成多个监控表,以满足不同的调试要求。
图1-51 电动机循环起停的PLC控制程序
图1-51 电动机循环起停的PLC控制程序(续)
(1)用监控表监控和修改变量的基本步骤
1)生成新的监控表或打开已有的监控表,生成要监视的变量,编辑和检查监控表的内容。
2)建立计算机与CPU之间的硬件连接,将用户程序下载到PLC。
3)将PLC由STOP模式切换到RUN模式。
4)用监控表监视、修改和强制变量。
(2)生成监控表
打开项目树中PLC的“监视与强制表”文件夹,双击其中的“添加新监控表”(见图1-52),生成一个新的监控表,并在工作区自动打开它。根据需要,可以为一台PLC生成多个监控表。应将有关联的变量放在同一个监控表内。
图1-52 生成监控表
(3)在监控表中输入变量
在监控表的“名称”列输入PLC变量表中定义过的变量的符号地址,“地址”列将会自动出现该变量的地址。而在“地址”列输入PLC变量表中定义过的地址,“名称”列将会自动出现它的名称。
如果输入了错误的变量名称或地址,将在出错的单元下面出现红色背景的错误提示方框。
可以使用监控表的“显示格式”列默认的显示格式,也可以右击该列的某个单元,在弹出的快捷菜单中选中需要的显示格式。在图1-53中,监控表用二进制模式显示MW4,可以同时显示和分别修改M4.0~M5.7这16个位变量。这种更改位变量显示格式的方法可用于I、Q和M,可以用字节(8位)、字(16位)或双字(32位)来监控和修改位变量。
图1-53 在线的监控表
(4)监视变量
可以用监控表的工具栏上的按钮来执行各种功能。与CPU建立在线连接后,单击工具栏上的 按钮,启动“全部监视”功能,将在“监视值”列连续显示变量的动态实际值。再次单击该按钮,将关闭监视功能。单击工具栏上的 按钮,可以对所选变量的数值进行一次立即更新,该功能主要用于STOP模式下的监视和修改。
位变量为TRUE(“1”状态)时,监视值列的方形指示灯为绿色。位变量为FALSE(“0”状态)时,监视值列的方形指示灯为灰色。
图1-53的MW4为已循环次数,在电动机工作循环过程中,MW4的值会不断增大。
(5)修改变量
按钮 用于显示或隐藏“修改值”列,在待修改变量的“修改值”列中输入新的变量值。输入Bool型变量的修改值“0”或“1”后,单击监控表其他地方,它们将变为“FALSE”(假)或“TRUE”(真)。
单击工具栏上的“立即一次性修改所有选定值”按钮 或右击变量,执行出现的快捷菜单中的“立即修改”命令,将修改值立即送入CPU。
右击某个位变量,执行出现的快捷菜单中的“修改为0”或“修改为1”命令,可以将选中的变量修改为“0”或“1”。
单击工具栏上的 按钮,或执行出现的快捷菜单中的“使用触发器修改”命令,在定义的用户程序的触发点,修改所有选中的变量。
如果没有启动监视功能,执行快捷菜单中的“立即监视”命令,将读取一次监视值。
在RUN模式下修改变量时,各变量会同时受到用户程序的控制。假设用户程序运行的结果使Q0.0的线圈得电,用监控表不可能将Q0.0修改或保持为“1”状态。在RUN模式下不能改变I区分配给硬件的数字量输入点的状态,因为它们的状态取决于外部输入电路的通和断状态。
在程序运行时如果修改变量值出错,可能导致人身或财产的损害。执行修改功能之前,应确认不会有危险情况出现。
将调试好的用户程序和设备组态一起下载到CPU中(注意:由于本案例设置了CPU的系统存储器字节和时钟存储器字节,它们属于“设备组态”,因此必须选中PLC文件夹将设备组态和程序块一起下载到CPU中,否则设备组态的内容将不会起效。后续项目若有设备组态项,下载项目同本案例),并连接好线路。按下电动机起动按钮SB2,观察电动机是否起动并正向运行,5s后是否停止运行,停止3s后是否反向运行,反向运行5s再停止3s后是否再次正向运行,如此循环是否为5次。循环结束后指示灯是否以秒级闪烁,无论何时按下电动机停止按钮SB1,电动机是否立即停止,且循环结束指示灯熄灭。若上述调试现象与控制要求一致,则说明本案例任务实现。
1)训练1:用PLC实现组合吊灯三档亮度控制,即按下第1次按钮只有1盏灯点亮,按下第2次按钮第1、2盏灯点亮,按下第3次按钮3盏灯全部点亮,按下第4次按钮3盏灯全部熄灭。
2)训练2:用PLC实现电动机延时停止控制,要求使用计数器和定时器实现在电动机运行时按下停止按钮5s后电动机停止运行。
3)训练3:用PLC实现地下车库有无空余车位提示控制,设地下车库共有100个停车位。要求有车辆入库时,空余车位数减1,有车辆出库时,空余车位数加1,当有空余车位时绿灯亮,无空余车位时红灯亮并以秒级闪烁,以提示车库已无空余车位。