STEP7编程软件用于SIMATIC S7、M7、C7和基于PC的WINAC,是供它们编程、监控和参数设置的标准工具。STEP 7具有以下功能:硬件配置和参数设置、通信组态、编程、测试、启动和维护、文件建档、运行和诊断功能等。在STEP 7中,用项目来管理一个自动化系统的硬件和软件。STEP 7用SIMATIC管理器对项目进行集中管理,它可以方便地浏览SIMATIC S7、M7、C7和WINAC的数据。实现STEP 7各种功能所需的SIMATIC软件工具都集成在STEP 7中。
5.1.1 STEP 7的硬件接口
PC/MPI适配器用于连接安装了STEP 7的计算机的RS-232C接口和PLC的MPI接口。计算机一侧的通信速率为19.2 KBIT/S或38.4 KBIT/S,PLC一侧的通信速率为19.2 KBIT/S~1.5MBIT/S。除了PC适配器,还需要一根标准的RS-232C通信电缆。使用计算机的通信卡CP 5611、CP 5511或CP 5512,可以将计算机连接到MPI或PROFIBUS网络,通过网络实现计算机与PLC的通信。也可以使用计算机的工业以太网通信卡CP 1512或CP 1612,通过工业以太网实现计算机与PLC通信。在计算机上安装好STEP7后,在管理器中执行菜单命令“OPTION”→“SETTING THE PG/PC INTERFACE” ,打开“INSTALL/REMOVE INTERFACES”
对话框。在中间的选择框中,选择实际使用的硬件接口。点击【SELECT…】按钮,打开“INSTALL/REMOVE INTERFACES”对话框,可以安装选择框中没有列出的硬件接口的驱动程序。点击【PROPERTIES…】按钮,可以设置计算机与PLC通信的参数。
5.1.2 STEP 7的编程功能
STEP 7的标准版只配置了3种基本的编程语言,梯形图(LAD)、功能块图(FDB)和语句表(STL)、复制和粘贴功能。语句表是一种文本编程语言,使用户能节省输入时间和存储区域,并且“更接近硬件”。STEP 7专业版的编程语言包括S7-SCL(结构化控制语言)、S7-GRAPH(顺序功能图语言)、S7 HIGRAPH和CFC,这四种语言对于标准版是可选的。STEP 7用符号表编辑器工具管理所有的全局变量,用于定义符号名称、数据类型和全局变量的注释。使用这一工具生成的符号表可供所有应用程序使用,所有工具自动识别系统参数的变化。
测试功能和服务功能包括设置断点、强制输入和输出、重新布线、显示交叉参考表、状态功能、直接下载和调试块、同时监测几个块的状态等。程序中的特殊点可以通过输入符号名或地址快速查找。
STEP 7的帮助功能:选定想要得到的在线帮助的菜单目录,或打开对话框,按F1键便可得到与它们有关的在线帮助。执行菜单命令“HELP”→“CONTENTS”进入帮助窗口,借助目录浏览器寻找需要的帮助主题,窗口中的检索部分提供了按字母顺序排列的主题关键词,可以查找与某一关键词有关的帮助。
5.1.3 STEP 7的硬件组态与诊断功能
硬件组态工具用于对自动化工程中使用的硬件进行配置和参数设置。主要包括:
1)系统组态:从目录中选择硬件机架,并将所选模块分配给机架中希望的插槽。
2)CPU的参数设置:可以设置CPU模块的多种属性,例如启动属性、扫描监视时间等,输入的数据存储在CPU的系统数据块中。
3)模块的参数设置:用户可以在屏幕上定义所有硬件模块的的可调整参数,包括功能模块与通信处理器,不必通过DIP开关来设置。在参数设置屏幕中,有的参数由系统提供若干个选项,有的参数只能在允许的范围输入,因此可以防止输入错误的数据。
通信的组态包括:
1)连接的组态和显示。
2)设置用MPI或PROFIBUS-DP连接的设备之间的周期性数据传送的参数,选择通信的参与者,在表中输入数据源和数据目的地后,通信过程中数据的生成和传送均是自动完成的。
3)设置用MPI、PROFIBUS或工业以太网实现的事件驱动的数据传输,包括定义通信路。从集成块库中选择通信模块(CFB),用通用的编程语言(例如梯形图)对所选的通信模块进行参数设置。
STEP 7系统诊断:系统诊断为用户提供自动化系统的状态,可以通过2种方式显示:
1)快速浏览CPU的数据和用户编写的程序在运行中的故障原因。
2)用图形方式显示硬件配置,例如显示模块的一般信息和模块的状态:显示模块故障,例如集中I/O和DP子站的通道故障;显示诊断缓冲区的信息等。
在STEP 7中,用项目来管理一个自动化系统的硬件和软件。STEP 7用SIMATIC管理器对项目进行集中管理,它可以方便的浏览SIMATIC S7、C7、和WINAC的数据。因此,掌握项目创建的方法就非常重要。
5.2.1 使用向导创建项目
首先双击桌面上的STEP 7图标,进入SIMATIC MANAGER窗口,进入主菜单【文件】,选择【“新建项目”向导】,弹出标题为“新项目向导”的小窗口。
1)点击【下一步】按钮,在新项目中选择CPU模块的型号为CPU 313C 。
2)点击【下一步】按钮,选择需要生成的逻辑块,选择需要生成作为主程序的组织块OB1,选择编程语言为梯形图(LAD)。
3)点击【下一步】按钮,输入项目的名称,按【完成】生成的项目。过程如图5.1所示。
生成项目后,可以先组态硬件,然后生成软件程序。也可以在没有组态硬件的情况下,首先生成软件。

(a)打开“新建项目”向导

(b)选择CPU的型号

(c)选择块的种类及语言种类

(d)给项目命名

(e)完成新项目的创建
图5-1使用向导创建项目
5.2.2 直接创建项目
进入主菜单【文件】 ,选择【新建…】,将出现如图5.2的一个对话框,在该对话框中分别输入“文件名” 、“目录路径”等内容,并确定,完成一个空项目的创建工作。

(a)输入文件名与路径

(b)完成项目创建
图5-2 直接创建项目
5.3.1 传送指令MOVE

图5-3 MOVE指令符号
MOVE(赋值指令)可以由使能(EN)输入端的信号激活。将在输入端IN 的特定值复制到输出端OUT 上的特定地址中。ENO 和EN 具有相同的逻辑状态。MOVE 只能复制 BYTE(字节)、WORD(字)或 DWORD(双字)数据对象。用户定义的数据类型(例如数组或结构)必须使用系统功能“BLKMOVE”(SFC 20)进行复制。
MOVE指令的应用举例:

图5-4 MOVE指令应用举例
如果 I0.0 =“1”,则执行指令。MW10 的内容被复制到当前打开的数据块的数据字12中。如果执行指令,则 Q4.0 为“1” 。
5.3.2 S_CU 加计数器指令

图5-5 S_CU加计时器指令符号
S_CU(加计数器)在输入端S 出现上升沿时使用输入端PV 上的数值预置。如果在输入端 R 上的信号状态为“1”,则计数器复位,计数值被置为“0”。如果输入端CU 上的信号状态从“0”变为“1”,并且计数器的值小于“999”,则计数器加“1”。
如果计数器被置位,并且输入端CU 上的RLO = 1,计数器将相应地在下一扫描循环计数,即使没有从上升沿到下降沿的变化或从下降沿到上升沿的变化。
如果计数值大于“0”,则输出Q 上的信号状态为“1”;如果计数值等于“0”,则输出Q 上的信号状态为“0”。
S_CU 加计数器指令的应用举例:

图5-6 S_CU 加计数器指令应用举例
如果 I0.2 从“0”变为“1”,计数器使用MW10 的值预置。如果I0.0 的信号状态从“0”变为“1”,计数器C10 的值将加“1”。C10 的值等于“999”除外。如果C10 不等于“0”,则Q4.0 为“1” 。
5.3.3 S_ODT接通延时 S5 定时器指令

图5-7 S_ODT接通延时S5定时器指令符号
S_ODT(接通延时 S5 定时器指令)用于在起动(S)输入端上出现上升沿时,起动指定的定时器。为了起动定时器,信号变化总是必要的。只要S 输入端的信号状态为“1”,则定时器就按输入端TV 上设定的时间间隔继续运行。当时间已经结束,未出现错误并且S 输入端上的信号状态仍为“1”,则输出Q 的信号状态为“1”。当定时器正在运行时,如果S输入端的信号状态从“1”变为“0”,则定时器停止运行。此时,输出Q 的信号状态为“0”。
当定时器运行时,如果复位(R)输入端从“0”变为“1”,则定时器复位。同时当前时间和时基清零。此时,输出Q 的信号状态为“0”。如果在输入端R 的信号状态为逻辑“1”,同时定时器没有运行,输入端S 为“1”,则定时器复位。
当前的时间值可以在输出 BI 和BCD 扫描出来。BI 上的时间值为二进制值,BCD上的时间值为BCD 码。当前的时间值等于初始TV 值减去定时器起动以来的历时时间。
S_ODT接通延时 S5 定时器指令应用举例:

图5-8 S_ODT接通延时S5定时器指令应用举例
如果输入端 I0.0 的信号状态从“0”变为“1”(RLO 出现上升沿),则起动定时器 T5。如果规定的2 秒时间已结束,输入 I0.0 的信号状态仍为“1”,则输出 Q4.0 为“1”。如果输入 I0.0 的信号状态从“1”变为“0”,则定时器停止运行,Q4.0 为“0”(如果 I0.1 的信号状态从“0”变为“1”,则定时器复位,而不管定时器是否正在运行)。
5.3.4 SHR_W 字右移指令

图5-9 SHR_W 字右移指令符号
SHR_W(字右移指令)可以由使能(EN)输入端的逻辑“1”信号激活。SHR_W 指令用于将输入IN 位的位 0 到位15 逐位右移。位16 到位 31 不受影响。输入N 指定移位的位数。如果N 大于16,该命令将“0”写入输出 OUT,并将状态字中的位 CC 0 和OV 清零。从左边到需填充空出位的所有位将填入N 个零。移位操作的结果可以在输OUT 中扫描。如果N 不等于“0” ,则通过 SHR_W 指令将 CC0位和OV 位清零。ENO 和EN 具有相同的信号状态。
SHR_W字右移指令应用举例:

图5-10 SHR_W字右移指令应用举例
如果 I0.0 为逻辑“1”,则 SHR_W 方块激活。MW0 装入,并右移使用 MW2 指定的位数。其结果被写入 MW4 中。Q4.0 置位。
5.4.1 程序流程图
开始→首次选择步进速度→正转或反转起动→移位寄存器赋初值→高速、中速、或低速中其中一个速度→发生移位脉冲→执行移位→移位输出控制步进电机→六拍计数到→移位寄存器赋初值→六拍计数没到→继续执行

图5-11 步进电机运行时的程序框图
5.4.2 软件模块
以工作框图为基本依据,结合考虑控制的具体要求,首先可将梯形图程序分成4个模块进行编程,1:步进速度选择;2:起动、停止和清零;3:移位步进控制功能模块;4:A、B、C三相绕组对象控制。然后,将各模块进行连接,最后经过调试、完善、实现控制要求。
5.4.3. 梯形图程序设计
控制步进电机的各输入开关及控制A、B、C三相绕组工作的输出端在PLC中的I/O编址如下:
表5-1 输入输出地址
I0.0 | 步进电机正转起动按钮 | Q0.0 | 控制A相绕组 |
I0.1 | 步进电机反转起动按钮 | Q0.1 | 控制B相绕组 |
I0.2 | 停止及清零按钮 | Q0.2 | 控制C相绕组 |
I1.0 | 低速开关 | | |
I1.1 | 中速开关 | | |
I1.2 | 高速开关 | | |
采用移位指令进行步进控制。首先指定移位寄存器MW0(16位),移位寄存器的初值如下:
表5-2 移位寄存器初值
M0.7 | M0.6 | M0.5 | M0.4 | M0.3 | M0.2 | M0.1 | M0.0 |
0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 |
按照三相六拍的步进顺序每右移1位,电机前进一个步距角(一拍),完成六拍后重新赋初值。其中,M0.6和M0.7始终为“0”。据此,可作出移位寄存器输出状态及步进电机正反转绕组的状态真值表,从而得出三相绕组的控制逻辑关系式见表5.3 。
表5-3 三相绕组的控制逻辑关系式
正转时 | 反转时 |
A相 | Q0.0 = M0.5 + M0.4 + M0.0 | A相 | Q0.0 = M0.5 + M0.4 + M0.0 |
B相 | Q0.1 = M0.4 + M0.3 + M0.2 | B相 | Q0.1 = M0.2 + M0.1 + M0.0 |
C相 | Q0.2 = M0.2 + M0.1 + M0.0 | C相 | Q0.2 = M0.4 + M0.3 + M0.2 |
从而设计出程序的梯形图见附录。编写好梯形图程序后,点击【保存】,然后点击【下载】,将程序下载到PLC中,即可运行。点击眼镜图标的【监视】命令,可打开对程序的监视。
低速时按下I1.0上升沿触发,而中速I1.1和高速I1.2与I1.0闭合触点串连形成互锁,利用传送指令MOVE将数字50传送到移位寄存器VW100。I0.0和I0.1是正反转按钮,I0.2是停止及清零按钮,当正转时按下I0.0, 而I0.0常开和I0.1,I0.2闭合触点形成串连,目的形成互锁,使正转时,反转不能启动。当按下正转I0.0时与常闭触点I0.1和I0.2串连,要想停止按下I0.2,不论处在正传或反转都会停止。停止按钮I0.2的常开触点与控制正转反转的辅助常闭触点相串连将0通过传送指令送到移位寄存器MW0中。启动正转反转都能使移位寄存器都能从A相开始使,这样电机不存在累积误差,正转反转辅助触点相并联经过上升沿触发在与递增计数CO相并联将二进制100000通过传送指令传送到移位寄存器MWO控制电机的拍数。通过递增计数CO启动M3.0。当增加到六次时CO辅助触点闭合,启动M3.0使增计数器复位从新开始计数,接通延时定时器的目的,决定移位的快慢。VW100的值不一样,脉冲的频率不一样。SHR_W右移字指令通过T6产生一个脉冲,移动一位。M2.0的作用给一个脉冲M2.0得电闭合一次递增计数就加一次,当增加到六次时,递增计数器动作,他的辅助触点闭合,M3.0动作递增计数器复位。通过移位寄存器输出状态及步进电机绕组状态真值表可以看出控制电机的正反转。中速,高速控制方式和低速相同。
为了生成一个新项目,完成系统硬件配置文件并将其下载,完成系统硬件组态步骤如下:
1.双击SIMATIC Manager图标,打开STEP7 主画面。点击【新建N…】,输入文件名称(GaoChao PLC)和文件夹地址,然后点击【确定】,系统将自动生成(GaoChao PLC)项目。

图5-12 新建项目
2.点亮(GaoChao PLC)项目名称,点击【插入】,【站点】,点击SIMATIC 300 站点,将生成一个S7-300的项目。

图5-13 插入站点
3.点开左面的【+】,选中SIMATIC 300(1),然后选中【硬件】并双击,进入硬件组态画面。

图5-14 进入硬件组态
4.双击SIMATIC 300\RACK-300,然后将Rail 拖入到左边空白处。生成空机架。

图5-15 创建机架
5.双击PS-300,选中电源PS 307 2A,将其拖到机架RACK的第一个插槽。

图5-16 插入电源
6.双击CPU-300,双击CPU-315,双击6ES7 315-2AF00-0AB0,将其拖到机架RACK的第2个插槽。

图5-17 插入CPU
7.点开SM300,点开DI/DO—300选中SM323 DI16/DO16*DC24V/0.5A模块,并将其拖入左下面的第4 槽中,一个数字输入输出模块组态完毕,系统将自动为模块的通道分配I/O地址(该处为I0.0 - I1.7;Q0.0 - Q1.7)。

图5-18 插入输入输出模块
8.点击【保存并编译】,存盘并编译硬件组态,完成硬件组态工作。切换回刚才的界面,依次点开SIMATIC 300(1),CPU 315,S7 程序(1),块,OB1。写入附录中的程序梯形图,保存并下载到PLC中。程序运行时,可通过点击【选项】,【参考数据】,【显示】来查看每个变量的状态。

图5-19 查看变量状态
组态王开发监控系统软件,是新型的工业自动控制系统正以标准的工业计算机软、硬件平台构成的集成系统取代传统的封闭式系统。
在组态王的硬件组态的设备设置中,添加西门子S7—300。当定义设备时选择该PLC的驱动,地址与PLC地址位取相同值即可与PLC通讯。

图5-20 定义PLC设备
组态和PLC之间是直接通讯的,只要监控数据发到PLC里,组态王就可以读取,变量名称和PLC的相同,直接编辑即可。定义数据变量时,I/O数据定义PLC寄存器,运行程序即可实现访问PLC寄存器获得采集的数据。上位控件(按扭等)所连接的变量,设定时和PLC的硬件地址相对应起来。
由此可以创建组态王对步进电机PLC控制系统的组态。如图所示:

图5-21 组态王对S7-300控制步进电机的监控画面
当按下三中速度中的一个时,与之相对应的状态指示灯亮。当按下“正转”或者“反转”时,步进电机以刚才选定的速度进行正传或反转,与之对应的转向指示灯亮。点击“复位”按钮时,步进电机停止,同时复位指示灯亮。
5.8 本章小结
本章讲述了STEP7软件的使用方法,设计了PLC控制步进电机运行的程序流程图,并依此编写了梯形图程序。讲述了运用西门子STEP7软件进行硬件组态的方法。并且,运用组态王软件,设计了PLC控制步进电机运行的监控系统。