Product classification

产品中心

contact us

联系我们

西门子S7-1200 PLC的基本指令和应用实例

发布时间:2024-01-07 07:26:36   来源:bob的网页地址
产品描述

  工厂自动化系统中,最核心的就是PLC,它通过在现场层、控制层和管理层分别部署PLC的和对应软件,实现了管理控制一体化。西门子目前主流的PLC产品为S7系列PLC,包括S7-200SMART、S7-1200、S7-300、S7-400、S7-1500

  如图1-1所示,西门子S7-1200 PLC模块包括CPU电源、输入信号处理回路、输出信号处理回路、存储区、和扩展模块接口。

  根据PLC的定义,S7-1200 PLC的本质为一台计算机,负责系统程序的调度、管理、运行和PLC的自诊断,负担将用户程序作出编译解释处理以及调度用户目标程序运行的任务。

  与之前西门子S7-200系列PLC模块最大的不同之处在于它标准配置了以太网接口RJ45,并能够使用一根标准网线与安装有博途软件的PC进行编程组态和工程应用。

  图1-2所示为S7-1200 PLC系统,它包括CPU模块、SM信号模块、CM通信模块、电源模块和其他附件。

  位逻辑指令是实现PLC控制的基本指令,即按照一定的控制要求对“0”、“1” 两个布尔操作数(BOOL)进行逻辑组合,可以构成“与”、“或”、“异或”等基本逻辑操作,也可以构成“置位”、“复位”、“上升沿检测”、“下降沿检测”等复杂逻辑操作,并将其结果送入存储器状态字的逻辑操作结果(RLO)。

  表2-1所示为常见的位逻辑指令汇总,最重要的包含触点和线圈指令,具体说明如下:

  取反指令(- NOT-、-( / )-)改变能流输入的状态,将RLO的当前值由0变1,或由1变0。如图2-1中,左右母线是一个直流电源的正负极,左母线是接正极,右母线接负极,能流(电流)沿着梯形图,从左母线流到右母线,形成一条回路。如果采用-( / )-线刚好相反。

  边沿信号在PLC程序中很常见,如电动机的起动、停止、故障等信号的捕捉都是通过边沿信号实现的。如图2-3所示,上升沿检测指令检测每一次0 到1的正跳变,让能流接通一一个扫描周期;下降沿检测指令检测每一次1到0的负跳变,让能流接通一一个扫描周期。

  当触发条件满足(即RL0= 1)时,置位指令将一一个线;当触发条件不再满足(即RLO=0)时,线圈值保持不变,只有触发复位指令时才能将线。单独的复位指令也可以对

  、计数器的值进行清零。梯形图编程指令中RS、SR触发器带有触发优先级,当置位、复位信号同时为1时,将触发优先级高的动作,如RS触发器,S (置位在后)优先级高。表2-1 位逻辑指令汇总

  DC来进行输送带启停控制电路的设计,即用启动按钮SB1控制输送带电动机运行,带动BOX物品从右向左运行,当达到到最右侧的接近开关附近时,接近开关感应到物品,输送带电动机停止;急停按钮可以每时每刻按下来停止输送带电动机;指示灯的运行和停止指示与电动机的动作一致。请用自锁控制来进行梯形图编程,并进行程序编辑与下载。

  输入输出元件输送带启停控制涉及按钮、接近开关、电动机和指示灯等元件,表2-2所示为本实例的输入输出元件及控制功能。

  电气接线C DC/DC/DC,具体接线所示。为了更加直观反映输入输出情况,将电源部分略作修改后的接线所示(本书后续实例主要是采用这种画法)。

  PLC的梯形图编程办法能够采用传统的“继电器—接触器”思路,如本实例中的“自锁控制”方法,当按下按钮I0.0后,Q0.0线的触点动作,持续接通Q0.0线圈,形成自锁控制。当I1.0紧急停止动作或I0.1接近开关动作,Q0.0线圈断开,自锁失效。在编程中,还需要注意Q0.2输出和Q0.1刚好相反,能够使用取反线 输送带起停梯形图

  将图2-7所示的梯形图程序经编译下载到PLC后,可以进行在线所示。必须要格外注意的是SB2急停按钮在接线上是常闭触电,因此在梯形图编程中画的是常开,正常情况实际的在线监控也是接通的,只有当按下急停按钮后,I1.0信号才断开。

  使用定时器指令用以创建可编程的延迟时间,表2-3所示为S7-1200的定时器指令,最常用的为如下4种定时器:

  3)TOF:关断延迟定时器,输出 Q在预设的延时过后重置为OFF。4)TONR:保持型接通延迟定时器,输出在预设的延时过后设置为ON。在使用 R 输入重置经过的时间之前,会跨越多个定时时段一直累加经过的时间。表2-3 定时器指令

  TON指令就是接通延迟定时器输出Q在预设的延时过后设置为ON,其指令形式如图2-9所示,

  及其数据类型如表2-4所示。参数IN 从0 跳变为1 将启动定时器TON。

  PT(预设时间)和ET(经过的时间)值以表示毫秒时间的有符号双精度整数形式存储在存储器中(表2-5所示)。TIME 数据使用T# 标识符,可以简单时间单元“T#200ms”或复合时间单元“T#2s_200ms(或T#2s200ms)”的形式输入。表2-5 TIME数据类型

  如图2-10所示,在指令窗口中选择“定时器操作”中的TON指令,并将之拖入到程序段中(图2-11),这时就会跳出一个“调用数据块”窗口,选择自动编号,则会直接生成DB1数据块;也可以选择手动编号,根据用户需要生成DB数据块。

  在项目树的“程序块”中,可以看到自动生成的IEC_Timer_0_DB[DB1]数据块,生成后的TON指令调用如图2-12所示。

  图2-13 TP指令应用图2-14所示为TP指令时序图,从图中可以看到:即使TON的IN信号还处于“1”状态,TP指令输出Q在完成PT时长后,就不再保持为“1”;即使TON的IN信号为多个“脉冲”信号,输出Q也能完成PT时长的脉冲宽度。

  在报警指示中经常会碰到“闪烁”的频率概念,用TON等定时器可以完成,但更便捷的方式就是采用博途软件自带的PLC“系统和时钟存储器”。

  时钟脉冲是一个周期内0状态和1状态所占的时间各为50%的方波信号,以M0.5为例,其时钟脉冲的周期为1s,如果用它的触点来控制接在某输出点的指示灯,指示灯将以1Hz的频率闪动,亮0.5s、熄灭0.5s。

  因为系统存储器和时钟存储器不是保留的存储器,用户程序或通信可能改写这些存储单元,破坏其中的数据。应避免改写这两个M字节,保证它们的功能正常运行。指定了系统存储器和时钟存储器字节后,这些字节不能再作它用,否则将会使用户程序运行出错,甚至造成设备损坏或人身伤害。

  1.[STEP1] 定义输入输出元件和电气接线所示的输入元件包括SB1启动按钮和SB2停止按钮,均采取常开触点接线;输出元件包括接触器KM1。具体电气接线 输入输出元件及控制功能

  为了更好地理解TON指令,图2-20所示为程序下载后的实时监控,即在DB1中实时读取当前的延时时间,如T#3S_110MS。

  输入输出元件和电气接线所示为统计设备运行时间的输入输出元件及控制功能,包括3个输入信号的按钮和输出接触器、指示灯。电气接线 输入输出元件及控制功能

  程序段1:调用TONR对输入信号Q0.0(即接触器KM1)进行累计定时,100分钟时间一到即输出HL1指示灯Q0.1,该定时器可以通过SB3进行复位。

  程序段2:调用SR触发器对输入信号SB1进行Q0.0置位、对停止按钮SB2和运行累计时间到信号HL1进行Q0.0复位,其中复位优先。

  如图2-23所示的指示灯HL1有两种闪烁方式,一种是当SB1按下时进行快闪,另外一种是当SB2按下时进行慢闪。当两个按钮同时按下时,指示灯HL1灭掉,然后进入待机状态,即按下SB1或SB2继续处于两种闪烁状态。请用时钟存储器来进行编程。

  指示灯闪烁实例包括2个按钮输入和1个指示灯输入见表2-9。电气接线 输入输出元件及控制功能

  图2-25所示为指示灯闪烁梯形图,采用M0.2来作为快闪的时钟存储器、M0.7来作为慢闪的时钟存储器。

  程序段1:按下SB1快闪按钮,则置位快闪中间变量M10.0,复位慢闪中间变量M10.1。

  程序段2:按下SB2慢闪按钮,则置位慢闪中间变量M10.1,复位快闪中间变量M10.0。

  程序段3:同时按下2个按钮时,则复位%M10.0和M10.1,同时置位M10.2(即复位中间变量)。

  程序段4:用2.5Hz表示快闪,用0.5Hz表示慢闪,在两种状态下输出指示灯。

  程序段5:在同时按下2个按钮情况下,过2s后自动激活,运行再次进行慢闪或快闪动作。

  表2-14所示为S7-1200共有10个常见的比较操作,用来比较数据类型相同的两个数IN1与IN2的大小,其操作数可以是I/Q/M/L/D等存储区中的变量或常量。当满足比较关系式给出的条件时,等效触点接通。

  表2-15所示为等于、不等于、大于等于、小于等于、大于、小于等6种比较指令触点的满足条件,且要比较的两个值必须为相同的数据类型。

  )。如果满足比较条件,则该指令返回逻辑运算结果 (RLO)“1”。如果不满足比较条件,则该指令返回 RLO“0”。(3)CMP>

  =:大于或等于可以使用“大于或等于”指令判断第一个比较值(

  )。如果满足比较条件,则该指令返回逻辑运算结果 (RLO)“1”。如果不满足比较条件,则该指令返回 RLO“0”。

  )。如果满足比较条件,则该指令返回逻辑运算结果 (RLO)“1”。如果不满足比较条件,则该指令返回 RLO“0”。

  )。如果满足比较条件,则该指令返回逻辑运算结果 (RLO)“1”。如果不满足比较条件,则该指令返回 RLO为“0”。

  移动指令是将数据元素复制到新的存储器地址,并从一种数据类型转换为另一种数据类型,移动过程中不更改源数据

  如图2-27可以使用“移动值”指令将 IN 输入操作数中的内容传送给 OUT1 输出的操作数中。始终沿地址升序方向进行传送。如果使能输入 EN 的信号状态为“0”或IN 参数的数据类型与 OUT1 参数的指定数据类型不对应时,则使能输出 ENO 的信号状态为“0”

  在MOVE指令中,若IN 输入端数据类型的位长度超出了OUT1 输出端数据类型的位长度,则传送源值中多出来的有效位会丢失。若 IN 输入端数据类型的位长度小于 OUT1 输出端数据类型的位长度,则用零填充传送目标值中多出来的有效位。在初始状态,指令框中包含 1 个输出(OUT1),可以鼠标点击图符扩展输出数目。在该指令框中,应按升序顺序排列所添加的输出端。执行该指令时,将 IN 输入端操作数中的内容发送到所有可用的输出端。如果传送结构化数据类型(DTL, STRUCT, ARRAY) 或字符串(STRING)的字符,则无法扩展指令框。可以输出多个地址OUT1、OUT2、OUT3等,如图2-28所示。

  如图2-29所示,使用“MOVE_BLK块移动”指令,可将存储区(源区域)的内容移动到其他存储区(目标区域)。使用参数 COUNT 可以指定待复制到目标区域中的元素个数。可通过 IN 输入端的元素宽度来指定待复制元素的宽度。并按地址升序顺序执行复制操作。

  使用图2-30所示的“UMOVE_BLK无中断块移动”指令,可将存储区(源区域)的内容连续复制到其他存储区(目标区域)。使用参数 COUNT 可以指定待复制到目标区域中的元素个数。可通过 IN 输入端的元素宽度来指定待复制元素的宽度。源区域内容沿地址升序方向复制到目标区域。

  “SWAP交换”指令可以更改输入IN 中字节的顺序,并在输出OUT 中查询结果。图2-32说明了如何使用“交换”指令交换数据类型为DW

  在数学运算指令中,ADD、SUB、MUL和DIV分别是加、减、乘、除指令,其操作数的数据类型可选SInt、Int、Dint、USInt、UInt、UDInt和Real。在运算过程中,操作数的数据类型应该相同。

  加法ADD指令可以从TIA软件右边指令窗口的“基本指令”下的“数学函数”中直接添加(图2-33a所示)。使用“ADD”指令,根据图2-33b选选择的数据类型,将输入 IN1 的值与输入 IN2 的值相加,并在输出 OUT (OUT = IN1+IN2)处查询总和。

  图2-33 ADD指令在初始状态下,指令框中至少包含两个输入(IN1 和IN2),可以鼠标点击图符扩展输入数目(图2-33c),在功能框中按升序对插入的输入进行编号,执行该指令时,将所有可用输入参数的值相加,并将求得的和存储在输出OUT 中。表2-16列出了“ADD”指令的参数。根据参数说明,只有使能输入EN 的信号状态为“1”时,才执行该指令。如果成功执行该指令,使能输出ENO 的信号状态也为“1”。如果满足下列条件之一,则使能输出 ENO 的信号状态为“0”:

  :如果操作数I0.0的信号状态为“1”,则将执行“加”指令,将操作数IW64的值与IW66的值相加,并将相加的结果存储在操作数MW0中。如果该指令执行成功,则使能输出 ENO 的信号状态为“1”,同时置位输出Q0.0。

  2.减法SUB指令如图2-35所示,可以使用减法SUB指令从输入IN1 的值中减去输入IN2 的值并在输出OUT (OUT = IN1-IN2)处查询差值。SUB指令的参数与ADD指令相同。

  图2-36中举例说明了SUB指令的工作原理:如果操作数I0.0的信号状态为“1”,则将执行“减”指令,将操作数IW64的值减去IW66的值,并将结果存储在操作数MW0中。如果该指令执行成功,则使能输出 ENO 的信号状态为“1”,同时置位输出Q0.0。

  如图2-37所示,可以使用乘法MUL指令将输入IN1 的值乘以输入IN2 的值,并在输出OUT (OUT = IN1*IN2)处查询乘积。同ADD指令一样,可以在指令功能框中展开输入的数字,并在功能框中以升序对相加的输入进行编号。表2-27为MUL指令的参数。

  图2-38举例说明了MUL指令的工作原理:如果操作数I0.0的信号状态为“1”,则将执行“乘”指令。将操作数IW64的值中乘以操作数IN2常数值“4”,相乘的结果存储在操作数MW20中。如果成功执行该指令,则输出 ENO 的信号状态为“1”,并将置位输出Q0.0。

  1)MOD指令:除法指令只能得到商,余数被丢掉,MOD指令可以用来求除法的余数。

  对于浮点数函数运算,其梯形图和对应的描述如表2-18中所示,需要注意的是,三角函数和反三角函数指令中的角度均为以弧度为单位的浮点数。

  如果操作数的数据类型是兼容的,由系统按照统一的规则自动执行隐式转换。可以根据设定的严格或较宽松的条件来进行兼容性检测,例如块属性中缺省的设置为执行IEC检测,这样自动转换的数据类型相对要少。编程语言LAD、FBD、SCL和GRAPH支持隐式转换。STL 编程语言不支持隐式转换。

  如果操作数的数据类型不兼容或者由编程人员设定转换规则时,则能够直接进行显式转换(不是所有的数据类型都支持显式转换),显式转换的指令参考表2-19。

  LAD移位指令可以将输入参数IN中的内容向左或向右逐位移动;循环指令可以将输入参数IN中的全部内容循环地逐位左移或右移,空出的位用输入IN移出位的信号状态填充。该指令可以对8、16、 32以及64位的字或整数进行操作,移位和循环指令参考表2-20。

  带有符号位的整数移位范围为0~15;双整数移位范围为0~31;长整数移位指令移位的范围为0~63。移位方向只能向右移,移出的位信号失,移空的位使用符号位补足。如整数为负值,符号位为1;整数为正值,符号位为0。例如将-个整数右移4位, 移位前后位排列次序如图2-42所示。

  (字节)、WORD (字)、DWORD ( 双字)或LWORD(长字)逐位进行“与”、“或”、“异或”逻辑运算操作。“与”操作可以判断两个变量在相同的位数上有多少位为1,通常用于变量的过滤,例如一个字变量与常数W#16#00FF相“与”,则可以将字变量中的高字节过滤为0;“或”操作可以判断两个变量中为1位的个数;“异或”操作可以判断两个变量有多少位不相同。字逻辑指令还包含编码解码等操作。字逻辑指令参考表2-31所示。

  某红绿灯控制时序图如图2-43所示,在按钮SB1启动之后,红灯先亮6s,然后绿灯亮6s,最后黄灯闪烁4s;反复循环,直至按钮SB2停止。请用PLC进行编程。

  图2-44 交通灯控制电气接线的时序图,主要采用了定时器数值的区间数据比较指令,即0-6s之间为红灯,6s-12s之间是绿灯,12s之后是4s闪烁黄灯;依次循环。选用TONR的原因,是因为有复位参数,而其他计数器均没有。

  本实例重要的进行时间TIME与DINT的转换,这里采用CONV指令,在图2-46所示的程序段3中将定时器的时间值转为双整数MD20。

  声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。举报投诉

  与上位机的配置 /

  接入MQTT私有云平台 /

  远程监控? /

  能够最终靠存储卡进行程序的更新,固件版本的升级以及程序数据的存储多项功能。本例进行程序更新的操作。

  ,可完成简单逻辑控制、高级逻辑控制、HMI 和网络通信等任务。下面分享

  输入/输出接线 /

  之间的ModbusTCP通讯怎么来实现? /

  对接MQTT服务器的操作步骤详解 /

  EDA软件RedEDA扇出功能展示~个人免费版已上线,欢迎各位在官网下载:

  特斯拉前无人驾驶负责人Andrej Karpathy谈无人驾驶#早资讯

其他产品
cache
Processed in 0.004138 Second.