1、 第 8 章 SIMATIC S7-300 PLC 硬件特性与软件设计 第 6、7 章就 SIMATIC S7-200 PLC 进行了详细地介绍,而 SIMATIC PLC 系列的中端产品S7-300 是一种更为通用的 PLC,能适合自动化工程中的各种应用场合,尤其是应用在生产制造工程中,其在硬件特性及软件编程上都与 S7-200 有着不同的特点。本章重点介绍 S7-300 的硬件特点、软件编程及网络通信。建议读者学习 S7-200/300 的共性与不同之处,切实掌握 PLC 产品的应用特点,达到事半功倍的效果。8.1 S7-300 概述 8.1.1 概述 大、中型 PLC 一般采用模块式结构
2、,用搭积木的方式来组成系统,模块化 PLC 由机架和模块组成。S7-300 是模块化的中小型 PLC,适用于中等性能的控制要求。品种繁多的CPU 模块、信号模块和功能模块能满足各种领域的自动控制任务,用户可以根据系统的具体情况选择合适的模块,维修时更换模块也很方便。当系统规模扩大和更为复杂时,可以增加模块,对 PLC 进行扩展。简单实用的分布式结构和强大的通信联网能力,使其应用十分灵活。S7-300 的编程软件 STEP 7 功能强大,使用方便,指令集包含 350 多条指令。STEP 7通过带标准用户接口的软件工具来为所有的模块设置参数,可以节省用户学习的时间和培训的费用。随着 PLC 产品性
3、能的提高,操作员监控技术(HMI 人机接口)也得到了广泛应用。S7-300 已将 HMI 服务集成到操作系统内,因此大大减少了人机对话的编程要求。SIMATIC 人机界面(如 WinCC 软件)从 S7-300 中获得数据,S7-300 按用户指定的刷新速度自动地传送这些数据。总之,S7-300 PLC 有以下几方面的特点。(1)模块化微型 PLC 系统,满足中、小规模的性能要求。(2)由不同档次的 CPU、各种各样的功能模块和 I/O 模块可供选择,可以非常好地满足和适应自动化控制任务。(3)简单实用的分布式结构和多界面网络能力,使应用十分灵活。(4)方便用户,有简易的无风扇设计。(5)当控
4、制任务增加时,可自由扩展。第 8 章 SIMATIC S7-300 PLC 硬件特性与软件设计 247247(6)大量的集成功能使它功能非常强劲。(7)扩展温度范围从-25+70。(8)易于操作、编程、维护和服务。(9)低成本的自动化系统解决方案。S7-300 PLC 外形如图 8.1 所示。图 8.1 S7-300 PLC 1电源模块 2后备电池 3DC24V 连接器 4模式开关 5状态和故障指示灯 6存储器卡 7MPI 多点接口 8前连接器 9前盖 8.1.2 组成部件 S7-300 是由各种模块部件所组成,各模块以不同方式组合在一起,可将控制系统完全按照应用需要来进行设计,其主要由以下几
5、部分组成。1中央处理单元(CPU)有各种不同性能档次的 CPU 可供控制器使用。从范围广泛的基本功能(指令执行,I/O读写,通过 MPI 和 CP 模块的通信)、集成功能和集成 I/O 模块到广泛的通信选项,总有一种 CPU 能满足用户的需要。例如有的 CPU 集成有数字量和模拟量输入/输出点,有的 CPU集成有 PROFIBUS-DP 等通信接口。CPU 前面板上有状态故障指示灯、模式开关、24V 电源端子、电池盒与存储器模块盒(新版本*1AF10*CPU 没有)。如图 8.2(a)、图 8.2(b)所示。2负载电源模块(PS)负载电源模块用于将 AC 220V 电源转换为 DC 24V 电
6、源,供 CPU 及 I/O 模块使用。额定输出电流有 2A、5A 和 10A 3 种,过载时模块上的 LED 闪烁。如图 8.3 所示。电器与 PLC 控制技术 248 248 (a)1AF04 版本 (b)1AF10 版本 图 8.2 CPU314 图 8.3 PS 307 电源模块(5A)的接线图 3信号模块(SM)信号模块是数字量输入/输出模块和模拟量输入/输出模块的总称,它们使不同的过程信号电压或电流与 PLC 内部的信号电平匹配。信号模块主要有数字量输入模块 SM321、数字量输出模块 SM322、模拟量输入模块 SM331 和模拟量输出模块 SM332。模拟量输第 8 章 SIMA
7、TIC S7-300 PLC 硬件特性与软件设计 249249入模块可以分为通用/专用(通用模块如 6ES7 3317KF020AB0;热电阻模块如 6ES7 3317PF020AB0)两大类,可以输入热电阻、热电偶、DC 4mA20mA 和 DC 0V10V 等多种不同类型和不同量程的模拟信号。每个模块上有一个背板总线连接器,现场的过程信号连接到前连接器的端子(图 8.1 中“8”所示的前连接器,可从模块本体插拔,方便系统维护)上,即实现了信号采集。4功能模块(FM)功能模块主要用于对实时性和存储容量要求高的控制任务,例如计数器模块、快速/慢速进给驱动位置控制模块、电子凸轮控制器模块、步进电
8、动机定位模块、伺服电动机定位模块、定位和连续路径控制模块、闭环控制模块、工业标识系统的接口模块、称重模块、位置输入模块、超声波位置解码器等。如图 8.4 计数模块所示(图中的“总线连接器”为供模块之间总线连接的设备)。5通信处理器(CP 模块)通信处理器用于 PLC 之间,PLC 与计算机和其他智能设备之间的通信,可以将 PLC接入 RPOFIBUS-DP、AS-i 和工业以太网,或用于实现点对点通信等。通信处理器可以减轻 CPU 处理通信的负担,并减少用户对通信的编程工作。图 8.5 为 CP340 模块(用以实现串行通信的解决方案)的俯视图。图 8.4 FM350-1 计数模块 图 8.5
9、 CP 340 俯视图 6接口(扩展)模块(IM)接口模块 IM360/361/365 用于本地系统扩展(远程系统可选用分布式结构,如选用ET200 接口构成 Profibus-DP 的 I/O 系统),即多机架配置时连接主机架(CR)和扩展机架(ER)所需的系统接口模块。S7-300 通过主机架和 3 个扩展机架使得最大的扩展能力为 3 个ER,每个机架内最多安装 8 个模块,即最多可以配置 32 个信号模块、功能模块和通信处理器,构成本地系统的最大配置。图 8.6(a)为 IM361 接口模块的前视图,图 8.6(b)为 S7-300系统扩展方式。电器与 PLC 控制技术 250 250
10、(a)IM361 接口模板的前视图 (b)S7-300 系统扩展方式 图 8.6 接口扩展模块 7导轨 铝质导轨用来固定和安装 S7-300 上述的各种模块。DIN 导轨是金属导轨,上面有用来安装螺丝的孔。它有 5 种不同的长度。即 160mm、482mm、530mm、830mm、2000mm(无孔)。2000mm DIN 导轨可截短以适应特殊长度需要。如图 8.7 所示。第 8 章 SIMATIC S7-300 PLC 硬件特性与软件设计 251251 图 8.7 DIN 安装导轨 8.1.3 系统结构 S7-300 采用紧凑的、无槽位限制的模块结构,电源模块(PS)、CPU、信号模块(SM
11、)、功能模块(FM)、接口模块(IM)和通信处理器(CP)都安装在导轨上。导轨是一种专用的金属机架,只需将模块钩在 DIN 标准的安装导轨上,然后用螺栓锁紧就可以了。根据需要有多种不同长度规格的导轨供用户选择。这种结构形式既可靠又电磁兼容。背板总线集成在各模块上,通过将总线连接器插在模块机壳的背后,使背板总线联成一体。图 8.8 为 S7-300模块的安装形式。图 8.8 S7-300 模块的安装 对于 S7-300,在系统模块配置时,有特殊的约束,即电源模块总是安装在机架的最左边,CPU 模块紧靠电源模块。如果有接口模块,它放在 CPU 模块的右侧,而后依次是通信模块、信号模块/功能模块(若
12、系统配置无需接口模块或通信模块,则 CPU 右侧直接安装信号模块/功能模块)。另外,每个机架上安装的信号模块、功能模块和通信处理器除了不能超过 8 块外,还受到背板总线 DC5V 供电电流的限制。主机架(CR)的 DC 5V 电源由 CPU 模块产生,其额定电流值与 CPU 的信号有关。扩展机架(ER)背板总线的 DC 5V 电源由接口模块 IM361 产生,各类模块消耗的电流可查 S7-300 选型或安装手册(各类模块消耗电流的总和是选用 PS模块的依据)。电器与 PLC 控制技术 252 252 8.1.4 I/O 模块地址的确定 S7-300 的开关量地址由地址标识符、地址的字节部分和位
13、部分组成,一个字节由 07这 8 位组成。地址标识符 I 表示输入,Q 表示输出,M 表示存储器位。例如 I3.2 是一个数字量输入的地址,小数点前面的 3 是地址的字节部分,小数点后的 2 表示这个输入点是 3号字节中的第 2 位。开关量除了按位寻址外,还可以按字节、字和双字寻址。例如输入量 I2.0I2.7 组成输入字节 IB2,B 是 Byte 的缩写;字节 IB2 和 IB3 组成一个输入字 IW2,W 是 Word 的缩写,其中的 IB2 为最高字节;IB2IB5 组成一个输入双字 ID2,D 是 Double Word 的缩写,其中的 IB2 为最高位的字节。以组成字和双字的第一个
14、字节的地址为字和双字的地址。S7-300 的信号模块的字节地址与模块所在的机架号和槽号有关,位地址与信号线接在模块上的端子有关。对于数字量模块,从主机架(CR)的4 号槽位开始,每个槽位分配4B(4 个字节)的地址,相当于32 个 I/O 点(见表 8-1)。最多可能有 4 机架8 块=32 个数字量模块,共占用 324B=128B。模拟量模块以通道为单位,一个通道占一个字地址,或两个字节地址。例如模拟量输入通道 IW640 由字节 IB640 和 IB641 组成。S7-300 为模拟量模块保留了专用的地址区域,字节地址范围为 IB256767。可以用装载指令和传送指令访问模拟量模块。一个模
15、拟量模块最多有 8 个通道,从 256 开始(该地址为系统缺省设置,也可通过 STEP 7 软件修改),给每一个模拟量模块分配 16B(8 个字)的地址。I/O 模块的字节地址见表 8-1,信号模块的地址举例见表 8-2。表 8-1 I/O 模块的字节地址 槽 号 机架号 模块 类型 4 5 6 7 8 9 10 11 数字量 03 47 811 1215 1619 2023 2427 2831 0(CR)模拟量 251271 272287 288303 304319 320335 336351 352367 368383 数字量 3235 3639 4043 4447 4851 5255 5
16、659 6063 1(ER)模拟量 384399 400415 416431 432447 448463 464479 480495 496511 数字量 6467 6871 7275 7679 8083 8487 8891 9295 2(ER)模拟量 512527 528543 544559 560575 576591 592607 608623 624639 数字量 9699 100103 104107 108111 112115 116119 120123 124127 3(ER)模拟量 640655 656671 672687 688703 704719 720735 736751 7
17、52767 第 8 章 SIMATIC S7-300 PLC 硬件特性与软件设计 253253由表 8-2 可以看出,模块地址分配建立了 PLC 系统模块与外部测控信号之间的软件联系,对应用程序的开发起着非常重要的作用(详见本章 8.8.2 节)。在表 8-2 中,数字量输入/输出模块内最低的位地址(例如 I0.0)对应的模块端子位置最高,最高的位地址(例如 16 点输入模块的 I1.7)对应的模块端子的位置最低 注:表 8-2 中 CR 导轨 10、11 槽位空,1 号 ER 导轨 9、10、11 槽位空。空槽位未安装模块,这种结构是系统硬件配置所允许的。表 8-2 信号模块地址举例 槽 号
18、 机架号 模块 类型 4 5 6 7 8 9 模块类型 16 点数字量输入 16 点数字量输入 32 点数字量 输入 32 点数字量输入 16 点数字量输出 8 通道模拟量 输入 0(CR)地址 I0.0I1.7 I4.0I5.7 I8.0I11.7 I12.0I15.7 Q16.0Q17.7 IW336IW350 模块类型 2 通道模拟量输入 8 通道模拟量输出 2 通道模拟量输出 8 点数字量 输出 32 点数字量输出-1(ER)地址 IW384,IW386 QW400QW414 QW416,QW418 Q44.0Q44.7 Q48.0Q51.7-8.2 S7-300 的 CPU 模块 S
19、7-300 有 20 种不同型号的 CPU,分别适用于不同等级的控制要求。有的 CPU 模块集成数字量 I/O,有的同时集成数字量 I/O 和模拟量 I/O。CPU 内的元件封装在一个牢固而紧凑的塑料机壳内,面板上有状态和故障指示灯(LED)、模式选择开关和通信接口。在存储器插槽内可以插入多达数兆字节的 Flash EPROM微存储器卡(简称为 MMC),可用来扩展存储功能或作为安装更新程序的简单方法。在模块化 CPU 中,数据可以通过电池进行备份;在新的紧凑型 CPU 中,数据通过 MMC 自动备份而无需维护。1.CPU 的运行模式 CPU 有 4 种操作模式,即 STOP(停机)、STAR
20、TUP(启动)、RUN(运行)和 HOLD(保持)。在所有的模式中,都可以通过 MPI 接口与其他设备通信。(1)STOP 模式 CPU 模块通电后自动进入 STOP 模式,在该模式不执行用户程序,可以接收全局数据和检查系统。(2)RUN 模式 执行用户程序,刷新用户程序,刷新输入和输出,处理中断和故障信息服务。电器与 PLC 控制技术 254 254(3)HOLD 模式 在启动和 RUN 模式执行程序时遇到调试用的断点,用户程序的执行被挂起(暂停),定时器被冻结。(4)STARTUP 模式 启动模式,可以用钥匙开关或编程软件启动 CPU。如果钥匙开关在 RUN 或 RUN-P 位置,通电时自
21、动进入启动模式。2.通信接口 所有的 CPU 模块都有一个多点接口 MPI,有的 CPU 模块有一个 MPI 和一个PROFIBUS-DP 接口,有的 CPU 模块有一个 MPI/DP 接口和一个 DP 接口。MPI 用来与 SIMATIC PLC 与其他西门子 PLC、PG/PC(编程器或个人计算机)、OP(操作员接口)通过 MPI 网络进行通信。CPU 通过 MPI 接口或 PROFIBUS-DP 接口在网络上自动地广播它设置的总线参数(即波特率),PLC 可以自动地“挂接到”MPI 网络上。PROFIBUS-DP 的传输速率最高为 12Mbit/s,用于与其他西门子带 DP 接口的 PL
22、C、PG/PC、OP 和其他 DP 主站及从站的通信(S7-300 网络通信的内容见 8.6 节)。8.3 S7-300 的输入/输出模块 输入/输出模块统称为信号模块(SM),包括数字量(或称开关量)输入模块、数字量输出模块、数字量输入/输出模块、模拟量输入模块、模拟量输出模块和模拟量输入/输出模块。S7-300 的输入/输出模块的外部接线接在插入式的前连接器的端子上,前连接器插在前盖后面的凹槽内。不需断开前连接器上的外部接线,就可以迅速地更换模块。第一次插入连接器时,有一个编码元件与之匹配,保证该连接器就只能插入同样类型的模块中。信号模块面板上的 LED 用来显示各数字量输入/输出点的信号
23、状态,模块安装在 DIN标准导轨上,通过总线连接器与相邻的模块连接。模块的默认(缺省)地址由模块所在的位置决定,也可以用 STEP 7 软件指定模块的地址。信号模块和接口模块的尺寸为 40mm(宽)125 mm(高)120 mm(深)。有少量模块的宽度为 80mm。8.3.1 数字量输入模块 SM321 数字量输入模块用于连接外部的机械触点和电子数字式传感器,例如二线式光电开关和接近开关等。数字量输入模块将从现场传来的外部数字信号的电平转换为 PLC 内部的信号电平。输入电路中一般设有 RC 滤波电路,以防止由于输入触点抖动或外部干扰脉冲引起的错误输入信号,输入电流一般为数毫安。图 8.9 为
24、典型 SM321 的模板视图及接线形式。数字量模块的输入/输出电缆最大长度为 1000m(屏蔽电缆)或 600m(非屏蔽电缆)。第 8 章 SIMATIC S7-300 PLC 硬件特性与软件设计 255255 图 8.9 SM321:DI16120/230VAC 数字量输入模板的端子接线图和框图 8.3.2 数字量输出模块 SM322 数字量输出模块用于驱动电磁阀、接触器、小功率电动机、灯和电动机起动器等负载。数字输出模块将 S7-300 的内部信号电平转化为控制过程所需的外部信号电平,同时有隔离和功率放大的作用。输出模块的功率放大元件有驱动直流负载的大功率晶体管和场效应晶体管、驱动交流负载
25、的双向晶闸管或固态继电器以及既可以驱动交流负载又可以驱动直流负载的小型继电器。输出电流的典型值为 0.5A2A,负载电源由外部现场提供。图 8.10 为典型 SM322 的模板视图及接线形式。在选择数字量输出模块时,应注意负载电压的种类和大小、工作频率和负载的类型(电阻性、电感性负载、机械负载或白炽灯)。除了每一点的输出电流外,还应注意每一组的最大输出电流。8.3.3 数字量输入/输出模块 SM323 是 S7-300 的数字量输入/输出模块,它有两种型号可供选择。一种是 8 点输入和 8 点输出的模块,输入点和输出点均只有一个公共端。另外一种有 16 点输入(8 点 1 组)和 16 点输出
26、(8 点 1 组)。输入、输出的额定电压均为 DC 24V,输入电流为 7mA,最大输出电流为 0.5A,每组总的输出电流为 4A。输入电路和输出电路通过光耦合器与背板总线相连,输出电路为晶体管型,有电子保护功能。电器与 PLC 控制技术 256 256 图 8.10 SM322:DO1624VDC/0.5A 数字量输出模板的端子接线图和框图 8.3.4 模拟量模块 S7-300 的模拟量 I/O 模块包括模拟量输入模块 SM331、模拟量输出模块 SM332 和模拟量输入/输出模块 SM334 和 SM335。1.SM331 模拟量输入模块的基本结构 SM331 模拟量输入模块用于将模拟量信
27、号转换为 CPU 内部处理用的数字信号,主要组成部分是 A/D(Analog/Digit)转换器。模拟量输入模块的输入信号一般是模拟量变送器输出的标准直流电压、电流信号。SM331 也可以直接连接不带附加放大器的温度传感器(热电偶或热电阻),这样可以省去温度变送器,不但节约了硬件成本,控制系统的结构也更加紧凑。图 8.11 为典型 SM331 模板视图及接线形式。2.模拟量输入模块的扫描时间 通道的转化时间由基本转换时间和模块的电阻测试和断线监控时间组成,基本转换时间取决于模拟量输入模块的转换方法(例如积分法和瞬时值转换法)。对于积分转换法,积分时间直接影响转换时间,积分时间可在 SETP 7
28、 软件中设置。扫描时间是指模拟量输入模块对所有被激活的模拟量输入通道进行转换和处理的时间的总和。如果模拟量输入通道进行了通道分组,还需要考虑通道之间的转换时间。为了减少扫描时间,应使用 STEP 7 中的硬件组态工具屏蔽掉未用的模拟量输入通道,在硬件上还需要将未用的通道的输入端短路。第 8 章 SIMATIC S7-300 PLC 硬件特性与软件设计 257257 图 8.11 SM331:AI812 位模拟量输入模板的端子接线图和框图 3.模拟量输入模块的误差 运行误差极限是指在模块的整个允许的温度范围内,在模块的正常测量范围或输出范围时,模拟量模块的最大相对测量误差或相对输出误差。基本误差
29、极限是指在模块的正常工作范围内,25时模拟量模块的测量误差或输出误差。【例 8.1】某模拟量输出模块为 4 通道 12 位模拟量输出模块,假设输出范围为 0V10V,模块的环境工作温度为 30,模块的电压输出运行极限为0.5%,因此在整个模块的正常输出范围内,最大输出误差应为0.05V(10V 的0.5%)。如果实际输出电压为 1V,模块的输出范围应为 0.95V1.05V。此时的相对误差为(0.05V/1V)100%=5%4模拟量输入模块的工程量化 工程量化时应考虑变送器的输入/输出量程和模拟量输入模块的量程,找出被测物理量与 A/D 转换后的数字之间的比例关系(相关模拟输入量转换后模拟值表
30、示方法可参考S7-300 硬件安装手册)。【例 8.2】压力变送器的量程为 0MPa10MPa,输出信号为 4mA20mA,模拟量输入模块的量程为 4mA20mA,转换后的数字量为 027648,设转换后得到的数字为 N,试求以 kPa 为单位的压力值。解:0MPa10MPa(0MPa10 000kPa)对应于转换后的数字 027648,转换公式为 电器与 PLC 控制技术 258 258 P=10 000N/27648 kPa 注:在运算时一定要先乘后除,否则会损失原始数据的精度。【例 8.3】用于测量锅炉炉膛压力(-60Pa60Pa)的变送器的输出信号为 4mA20mA,模拟量输入模块将0
31、mA20mA转换为数字027648,设转换后得到的数字为N,试求以0.1Pa为单位的压力值。解:4mA20mA 的模拟量对应于数字量 553027648,即-600600(0.1Pa)对应于数字量553027648,压力的计算公式为 12001200(5530)6000.1Pa(5530)6000.1Pa27648553022118PNN=5.SM332 模拟量输出模块的基本结构 SM332 模拟量输出模块用于将 CPU 送给它的数字信号转换为成比例的电流信号或电压信号,对执行机构进行调节或控制,其主要组成部分是 D/A(Digit/Analog)转换器。图 8.12 为典型 SM332 的模
32、板视图及接线形式。图 8.12 SM332:AO416 位模拟量输出模板接线图和框图 模拟量输出通道的转换时间由内部存储器和数模转换的数字化输出值的传送时间组成。模拟量输出通道的扫描时间是指模拟量输出模板的所有激活模拟量输出通道的转换时第 8 章 SIMATIC S7-300 PLC 硬件特性与软件设计 259259间总和。在使用中应禁用所有没有使用的模拟量输出通道,以降低 STEP 中的扫描时间。8.3.5 模拟量输入/输出模块 模拟量输入/输出模块 SM334 和 SM335 的技术规范见表 8-3。快速模拟量输入/输出模块 SM335 提供以下功能。(1)4 个快速模拟量输入通道,基本转
33、换时间最大为 1ms。(2)4 个快速模拟量输出通道,每通道最大转换时间为 0.8ms。(3)10V/25mA 的编码器电源。(4)一个计数器输入(24V/500Hz)。SM335 有两种特殊的工作模式。(1)只进行测量 模块不断地测量模拟量输入值,而不更新模拟量输出。它可以快速测量模拟量值(=1 或&与 XOR 异或-|逻辑输入 -|反相逻辑输入-()-=结果输出/赋值-(#)-#中间输出-(R)-R 复位-(S)-S 置位 RS RS 复位置位触发器 SR SR 置位复位触发器-(N)-N-RLO下降沿检测-(P)-P-RLO上升沿检测-(SAVE)-SAVE-将RLO存入BR存储器 NE
34、G NEG 地址下降沿检测 位逻辑命令 POS POS 地址上升沿检测 CMP=D CMP=D 双整数比较(=,=,=I CMP=I 整数比较(=,=,=R CMP=R 实数比较(=,=,)-MCR 主控继电器断开-(MCR)-MCR0-|-1-|-结果位大于“0”=0-|-=1-|-结果位大于等于“0”=0-|-=1-|-结果位小于等于“0”0-|-1-|-结果位小于“0”0-|-1-|-结果位不等于“0”BR-|-BR-|-异常位二进制结果 状态位指令 OS-|-OS-|-存储溢出异常位 电器与 PLC 控制技术 268 268(续)指令分类 LAD FBD 说 明 OV-|-OV-|-溢
35、出异常位 UO-|-UO-|-无序异常位=0-|/|-结果位取反等于“0”0-|/|-结果位取反大于“0”=0-|/|-结果位取反大于等于“0”=0-|/|-结果位取反小于等于“0”0-|/|-结果位取反小于“0”0-|/|-结果位取反不等于“0”BR-|/|-异常位二进制结果去反 OS-|/|-存储溢出异常位取反 OV-|/|-溢出异常位取反 状态位指令 UO-|/|-无序异常位取反 S_PULSE S_PULSE 脉冲S5定时器 S_PEXT S_PEXT 扩展脉冲S5定时器 S_ODT S_ODT 接通延时S5定时器 S_ODTS S_ODTS 保持型接通延时S5定时器 S_OFFDT
36、S_OFFDT 断电延时S5定时器-(SP)-SP 脉冲定时器输出-(SE)-SE 扩展脉冲定时器输出-(SD)-(SD)接通延时脉冲定时器输出-(SS)-(SS)保持型接通延时定时器输出 定时器指令-(SF)-SF 断开延时定时器输出 WAND_DW WAND_DW 双字和双字相“与”WAND_W WAND_W 字和字相“与”WOR_DW WOR_DW 双字和双字相“或”WOR_W WOR_W 字和字相“或”WXOR_DW WXOR_DW 双字和双字相“异或”字逻辑指令 WXOR_W WXOR_W 字和字相“异或”注:每一类比较指令包含 6 种比较指令:EQ(相等),NE(不相等),GT(大
37、于),LT(小于),GE(大于等于),LE(小于等于)。第 8 章 SIMATIC S7-300 PLC 硬件特性与软件设计 2692698.5.2 STL 指令系统 与 LAD 和 FBD 相比,在 STEP 7 中 STL 提供了更为丰富的指令集。正是由于这个原因,LAD,FBD 的代码可以转换为 STL 代码,而并非所有的 STL 代码都可以转换成 LAD或 FBD 代码。STL 的指令提供了对 CPU 内的累加器直接操作的功能,因此 STL 指令集更灵活。STL中包含了两类直接操作 CPU 累加器的指令。1累加器指令(Accumulators)这类指令主要提供对累加器 1(ACCU1)
38、和累加器 2(ACCU2)之一,或者对两者进行的操作。2装载/传递指令(Load/Transfer)装载/传递指令用于实现程序中数据的传递。装载指令(L)将数据送到累加器 1,而传递指令(T)将累加器 1 中的数据送到目标地址中。表 8-5 列出了所有 STL 指令。表 8-5 STL 指令 类 别 STL指令 说 明+AR1 ACCU1与AR1相加+AR2 ACCU1与AR2相加 DEC ACCU1减1 ENT ACCU3 ACCU4,ACCU2 ACCU3 INC ACCU1加1 LEAVE ACCU3 ACCU2,ACCU4 ACCU3 NOP 0 空操作0 NOP 1 空操作1 POP
39、 ACCU1 ACCU2 PUSH ACCU1 ACCU2 累加器指令 TAK 交换ACCU1和ACCU2的内容)嵌套闭合=赋值 A 与操作 A(与操作嵌套开始 AN 与非操作 AN(与非操作嵌套开始 CLR RLO清0(=0)位逻辑指令 FN 下降沿 电器与 PLC 控制技术 270 270(续)类 别 STL指令 说 明 FP 上升沿 NOT 非操作(RLO取反)O 或操作 O(或操作嵌套开始 ON 或非操作 ON(或非操作嵌套开始 R 复位 S 置位 SAVE 把RLO存入BR寄存器 SET RLO置位(=1)X 异或操作 X(异或操作嵌套开始 XN 异或非操作 位逻辑指令 XN(异或非
40、操作嵌套开始?D 双字整数比较(32位),=,=,=,?I 整数比较(16位),=,=,=,比较指令?R 实数比较,=,=,=,BTD BCD转成双字整数(32位)BTI BCD转成单字整数(16位)CAD 改变ACCU1字节的次序(32位)CAW 改变ACCU1字中字节的次序 CDB 交换共享数据块和背景数据块的内容 DTB 双字整数(32位)转换为BCD数 DTR 双字整数(32位)转换为实数(32位IEEE浮点数)INVD 双字整数反码(32位)INVI 单字整数反码(16位)ITB 16位整数转换为BCD数 ITD 单字(16位)转换为双字整数(32位)NEGD 双字整数补码 NEGI
41、 单字整数补码 NEGR 实数求反(32位IEEE FP)RND 取整 转换指令 RND-取整为较小的双字整数 第 8 章 SIMATIC S7-300 PLC 硬件特性与软件设计 271271(续)类 别 STL指令 说 明 RND+取整为较大的双字整数 转换指令 TRUNC 截尾取整 CD 降计数器 CU 升计数器 FR 计数器允许(计数器C0C255)FR C0C255 L 以整数形式把当前的计数值写入ACCU1(当前计数器号的范围为0255,例如:L C33)LC 把当前的计数器值以BCD码形式装入ACCU1(当前计数器号的范围为0255,例如:LC C33)R 复位计数器(当前的计数
42、器号的范围为0255,例如:R C33)计数器指令 S 计数值置初值(当前计数器号的范围为0255,例如:S C33)数据块调用指令 OPN 打开数据块*R ACCU1、ACCU2相乘(32位IEEE浮点数)/R ACCU2除以ACCU1(32位IEEE浮点数)+R ACCU1、ACCU2相加(32位IEEE浮点数)ABS 绝对值(32位IEEE浮点数)ACOS 反余弦(32位IEEE浮点数)ASIN 反正弦(32位IEEE浮点数)ATAN 反正切(32位IEEE浮点数)COS 余弦(32位IEEE浮点数)EXP 求指数(32位IEEE浮点数)LN 求自然对数(32位IEEE浮点数)-R 从A
43、CCU2减去ACCU1实数(32位IEEE浮点数)SIN 正弦(32位IEEE浮点数)SQR 求平方(32位IEEE浮点数)SQRT 求平方根(32位IEEE浮点数)浮点算术运算指令 TAN 正切(32位IEEE浮点数)*D ACCU1和ACCU2双字整数相乘(32位)*I ACCU1和ACCU2双字整数相乘(16位)/D ACCU2除以ACCU1双字整数(32位)整数算术运算指令/I ACCU2除以ACCU1整数(16位)电器与 PLC 控制技术 272 272(续)类 别 STL指令 说 明+整数常数加法(16位,32位)+D ACCU1和ACCU2双字整数相加(32位)+I ACCU1和
44、ACCU2整数相加(16位)-D 从ACCU2减去ACCU1双字整数(32位)-I 从ACCU2减去ACCU1整数(16位)整数算术运算指令 MOD 双字整数形式的除法取余数(32位)JBI 如果BR=1则跳转 JC 如果RLO=1则跳转 JCB 如果RLO=1则跳转,并把RLO的值存于状态字的BR位中 JCN 如果RLO=0则跳转 JL 跳转到表格(多路多支跳转)JM 如果为负则跳转 JMZ 如果小于等于0则跳转 JN 如果非0则跳转 JNB 如果RLO=0则跳转,并把RLO的值存于状态字的BR位中 JNBI 如果BR=0则跳转 JO 如果OV=1则跳转 JOS 如果OS=1则跳转 JP 如
45、果大于0则跳转 JPZ 如果大于等于0则跳转 JU 无条件跳转 JUO 若无效数则跳转 JZ 为0则跳转 逻辑控制指令 LOOP 循环 CAR 交换AR1和AR2的内容 L 把数据装载入ACCU1 L DBLG 把共享数据块的长度写入ACCU1 L DBNO 把共享数据块的号写入ACCU1 L DILG 把背景数据块的长度写入ACCU1 L DINO 把背景数据块的号写入ACCU1 L STW 把状态字写入ACCU1 LAR1 把ACCU1的内容写入AR1 装载/传递指令 LAR1 把指明的地址写入AR1 第 8 章 SIMATIC S7-300 PLC 硬件特性与软件设计 273273(续)
46、类 别 STL指令 说 明 LAR1 AR2 把AR2的内容写入AR1 LAR2 把ACCU1的内容写入AR2 LAR2 把指明的地址写入AR2 T 把ACCU1的内容传到目标单元 T STW 把ACCU1的内容传输给状态字 TAR1 把AR1的内容传输给ACCU1(没有指明地址)装载/传递指令 TAR2 把AR2的内容传输给ACCU1(没有指明地址)MCR 把RLO从MCR堆栈中弹出,结束MCR BE 块结束 BEC 条件块结束 BEU 无条件结束 BLD 程序显示指令 CALL 块调用 CC 条件调用 MCR 把RLO存入MCR堆栈,开始MCR MCRA 激活MCR区域 程序控制指令 UC
47、 无条件调用 RLD 双字循环左移操作(32位)RLDA 带CC1位的ACCU1循环左移(32位)RRD 双字循环右移(32位)RRDA 带CC1位的ACCU1循环右移(32位)SLD 双字左移(32位)SLW 单字左移(16位)SRD 双字右移(32位)SRW 单字右移(16位)SSD 移位有符号双字整数(32位)移位和循环指令 SSI 移位有符号单字整数(16位)FR 定时器允许(定时器T0T255)FR T0T255 定时器指令 L 以整数形式把当前的定时器值写入ACCU1(当前定时器号的范围为0255,例如:L T33)电器与 PLC 控制技术 274 274(续)类 别 STL指令
48、说 明 LC 把当前的定时器值以BCD码形式装入ACCU1(当前定时器号的范围为0255,例如:LC T33)R 复位定时器(当前的计时器号的范围为0255,例如:R T33 SD 接通延时定时器 SE 扩展脉冲定时器 SF 断电延时定时器 SP 脉冲定时器 定时器指令 SS 带保持的接通延时定时器 AD 双字与操作(32位)AW 字与操作(16位)OD 双字或操作(32位)OW 单字或操作(16位)XOD 双字异或操作(32位)字逻辑指令 XOW 单字异或操作(16位)限于篇幅,本节无法对表 8-4 和表 8-5 中的指令一一详述。关于这些指令的详细内容可以参考S7-300/400 梯形逻辑
49、编程手册、S7-300/400 功能块图编程手册和S7-300/400 语句表编程手册,或者可以在 STEP 7 程序编辑器中选中相应的指令,按F1 键获得在线帮助。8.6 编程方式与程序块、数据块 PLC 产品的种类很多,但是各种型号的 PLC 在本质上都是类似的。本节重点介绍基于STEP 7 软件环境下 S7-300 PLC 的编程方式以及逻辑块和数据块等方面的知识。8.6.1 编程方式简介 1用户设计方法分类 在 STEP 7 中有 3 种常用的用户程序设计方法,即线性化编程、部分结构化编程和结构化编程。1)线性化编程 线性化编程类似于硬件继电器控制电路,整个用户程序放在循环控制组织块
50、OB1(主程序)中,循环扫描时不断地依次执行 OB1 中的全部指令。这种方式的程序结构简单,不涉及功能块、功能、数据块、局域变量和中断等比较复杂的概念,容易入门。第 8 章 SIMATIC S7-300 PLC 硬件特性与软件设计 275275由于所有的指令都在一个块中,即使程序中的某些部分在大多数时候并不需要执行,但每个扫描周期都要执行所有的指令,因此没有有效地利用 CPU。此外,如果要求多次执行相同或类似的操作,需要重复编写程序。如图 8.15 左图所示。2)部分结构化编程 程序部分在块内,每块包含一组设备和任务的逻辑。包含在组织块(OB1)中的指令控制程序执行部分块。例如部分程序可以包括