「零基础入门PLC」S7-200 SMART 编程技巧及实例分享
S7-200 SMART在编程中常见问题解析
工欲善其事必先利其器,在日常的程序编辑和调试过程中,可能会遇到各种各样的问题,比如编辑好的逻辑程序执行结果不正确,编译正常的程序下载到不同的CPU中,有些可以下载,而有些提示非致命错误等等,此时如何快速的排查和分析错误发生原因就非常重要,而排查和分析的前提就需要对S7-200 SMART从软件和硬件上有更加深入的了解,下面我们就通过几个典型的案例来进行问题的分析。
案例 1
首先看图1这段程序,编译无任何问题,如果下载到不同类型的CPU中,表现就会不同,我们可以尝试下载到ST60和CR60两种类型的CPU中。
图1 主程序
下载到ST60中,程序运行正常,如果下载到CR60中,程序运行就会报非致命错误:操作数非法(错误码:0090),图2为具体的非致命错误信息:
图2 PLC信息
根据程序分析错误出现的原因和中断有关,可以查询S7-200 SMART系统手册中断章节可以找到对应答案,如表1所示,24号中断事件CR60不支持,所以在运行时会报错非致命错误。
表1
综上,当需要程序在多个不同类型CPU之间下载或者移植时,就需要提前了解各个CPU的程序容量大小、支持的数据区的大小,断电保持区域大小,是否使用到了CPU不支持的功能或者CPU固件版本是否支持等因素,只有了解了这些,才能做到有的放矢。
案例 2
在日常编程过程中,我们可能需要各种标准库,有时需要子程序和中断程序有多重调用关系,例如下面这个案例,程序想使用格雷码转换库在定时中断中每隔100ms进行一次数据的格雷码转换,请看图3:
图3 主程序
图4 子程序
程序的调用关系为:中断子程序INT0调用子程序SBR1,SBR1中调用子程序SBR2,SBR2中的程序如图4所示,下载到CPU中,通过状态图表监视程序状态,发现没有结果输出,如图5所示:
图5 状态图标监控无输出
进一步监控PLC信息,可以看到图6的非致命错误报警:超出最大用户子例程嵌套级别(错误码:0008)
图6 PLC信息
S7-200 SMART手册中规定:从主程序调用子例程的嵌套深度是 8 级,从中断例程调用嵌套深度是 4 级。
现在来看上述程序的调用关系:
INT0→SBR1→SBR2→GRAY_BIN_DW,表面上也仅仅嵌套了3级,满足中断嵌套深度要求,但是仔细查看GRAY_BIN_DW功能库可以发现,该库也嵌套了几层,嵌套关系如下:
GRAY_BIN_DW→GRAY_BIN→XOR,这样下来,嵌套关系就变成如下:
INT0→SBR1→SBR2→GRAY_BIN_DW
→GRAY_BIN→XOR,总共5层嵌套关系,超过了CPU支持的最大嵌套深度,导致CPU 无法运行,知道了原因,我们可以减少调用嵌套为4层以内,则程序就可以正常执行了。
通过以上描述就可以明白,有些看似不可理解的问题其实有其发生的原因,只有深入了解对应产品的技术细节,才能抽茧剥丝,找到问题的根源所在。
S7-200 SMART如何快速提高编程效率
在日常的编程过程中,我们可能需要不少的逻辑运算和算术运算,如果这种运算很多,有可能会导致程序量很大,CPU的扫描周期加长,在这种情况下,找到其中的规律,可以大大简化程序。
假设一个场景,现场有16台设备,需要控制16台泵的启停,IO地址如下表所示:
表2
一般的编程思路是单独写出每个泵的启动停止控制逻辑,如图7所示,需要编写16组控制逻辑:
图7 单个泵的启停控制
其实针对这种编程,我们可以变换一种思路,将上面的梯形图变换成图8所示的逻辑,也可以完成对应的控制功能:
图8 字逻辑运算
这样变换完成后,编程就显得特别简洁,因此编程思路很重要。
在另外一些应用场景中,有时需要记录现场设备的运行时间,一般情况下我们可以使用定时器来实现计时的功能,但S7-200 SMART定时器有数量限制(最大256个),并且最大时基为100ms的定时器其所能达到的最大计时长度为3276.7S,若想实现小时或者天的计时就需要定时器加计数器来实现,而计数器也有数量限制(最大256个),当需要类似的功能很多时,计数器和定时器数量就不够用了,此时可以使用系统特殊存储器 SM0.4(周期为60S的时钟脉冲)和SM0.5(周期为1S的时钟脉冲)来实现计时功能。
如图9所示,其中值VD0的单位为秒,在实际应用中,可以对这个数值进行再次转换,得到分钟、小时或者天的时间值(本例中VD4的单位为小时),同时这些地址也可以按需设置在S7-200 SMART断电保持区域中,实现不同时间长度的定时以及断电保持功能,非常方便。
图9 使用SM0.5实现计时功能
实际编程时对于一些功能重复的地方,我们可以考虑做成子程序多次调用,一些需要重复计算的功能,可以使用FOR NEXT循环来完成,也可以考虑使用间接寻址的方式来提高程序的灵活性,而对一些流程方面的控制可以使用顺序控制继电器来完成,这样可以大大提高编程的效率。
关于西门子PLC S7-200初学中的一些总结,入门收藏
S7-200
S7-1500
一说到西门子S7-200PLC,懂行的可能都感觉它已经很过时了,现在都已经发展到了具有小编程屏幕的1500系列,其实S7-200在实际应用中的稳定性还是很不错的,更主要的是价格相对便宜一点,我们在做一些小型设备改造时,仍然可以使用。当然国产的很多PLC也已经具备了不错的兼容性,价格上便宜很多,想自学的朋友可以入手一款。今天分享一些概括性总结S7-200的知识,希望能够帮助到PLC初学者.
一、初学者常见疑问
1、为什么要用PC/PPI接口?
因S7-200CPU使用的是RS485,而PC机的COM口采用的是RS232,两者的电气规范并不相容,需要用中间电路进行匹配。PC/PPI其实就是一根RS485/RS232的匹配电缆。
2、晶体管输出与继电器输出各自的优点如何?
晶体管不能带AC220V的交流负载,只能带低压的直流。对抗过载和过压的能力差。但可以高频输出,适合高频率输出的场合,例如脉冲控制。
继电器可以带AC220V和直流的负载。但由于继电器本身的特性决定了它不能高频输出。同时继电器通断的寿命一般在10万次左右。所以在频繁通断的场合也适合用晶体管的
3、S7-200 CPU上的通讯口,通讯距离究竟有多远?
《S7-200系统手册》上给出的数据是一个网段50m,这是在符合规范的网络条件下,能够保证的通讯距离。凡超出50m的距离,应当加中继器。加一个中继器可以延长通讯网络50米。如果加一对中继器,并且它们之间没有S7-200 CPU站存在(可以有EM277),则中继器之间的距离可以达到1000米。符合上述要求就可以做到非常可靠的通讯。
实际上,有用户做到了超过50m距离而不加中继器的通讯。西门子不能保证这样的通讯一定成功。
4、通讯口参数如何设置?
缺省情况下,S7-200 CPU的通讯口处于PPI从站模式,地址为2,通讯速率为9.6K,要更改通讯口的地址或通讯速率,必须在系统块中的通讯端口选项卡中设置,然后将系统块下载到CPU中,新的设置才能起作用。
5、M区域地址不够用怎么办?
有些用户习惯使用M 区作为中间地址,但S7-200CPU中M区地址空间很小,只有32个字节,往往不够用。而S7-200CPU中提供了大量的V 区存储空间,即用户数据空间。V存储区相对很大,其用法与M 区相似,可以按位、字节、字或双字来存取V 区数据。例:V10.1, VB20, VW100, VD200等等。
6、S7-200的远距离通讯有哪些方式?
RS-485网络通讯:PPI、MPI、PROFIBUS-DP协议都可以在RS-485网络上通讯,通过加中继,最远可以达到9600米。光纤通讯:光纤通讯除了抗干扰、速率高之外,通讯距离远也是一大优点。S7-200产品不直接支持光纤通讯,需要附加光纤转换模块才可以。 电话网:S7-200通过EM241音频调制解调器模块支持电话网通讯。EM241要求通讯的末端为标准的音频电话线,而不论局间的通信方式。通过EM241可以进行全球通讯。 无线通讯:S7-200通过无线电台的通讯距离取决于电台的频率、功率、天线等因素;S7-200通过GSM网络的通讯距离取决于网络服务的范围 ;S7-200通过红外设备的通讯也取决于它们的规格。7、S7-200支持的通讯协议哪些是公开的,哪些是不公开的?
PPI协议:西门子内部协议,不公开 MPI协议:西门子内部协议,不公开 S7协议:西门子内部协议,不公开 PROFIBUS-DP协议:标准协议,公开 USS协议:西门子传动装置的通用串行通讯协议,公开详情请参考相应传动装置的手册 MODBUS-RTU(从站):公开8、S7-200的高速输入、输出如何使用?
S7-200 CPU上的高速输入、输出端子,其接线与普通数字量I/O相同。但高速脉冲输出必须使用直流晶体管输出型的CPU(即DC/DC/DC型)。
9、NPN/PNP输出的旋转编码器(和其他传感器),能否接到S7-200 CPU上?
都可以。S7-200 CPU和扩展模块上的数字量输入可以连接源型或漏型的传感器输出,连接时只要相应地改变公共端子的接法。
10、NPN和PNP传感器混接进S7-200 PLC的方法
大家都知道一般日系PLC如三菱、OMRON等一般公共端是 信号接入的时候通常是选用NPN传感器。欧系PLC的公共端一般是-,大多选用PNP的传感器接入信号。如S7-200/300等那么当S7-200 PLC做系统时候,提供的传感器有PNP和NPN两种那么问题怎么解决呢?
方法一 :NPN传感器利用中间继电器转接
方法二 :大家在设计的时候一般把200PLC的输入端[M]统一接24V-,其实,200PLC同样可以引入-信号输入,把1M的接24V ,I0.0-0.7统一接NPN传感器,把2M接24V-,把PNP传感器统一接I1.0-1.7这样就能达到NPN&PNP传感器混接进PLC的目的。原因很简单,200PLC支持两种信号接入,内部是双向二极管采用光电隔离进行信号传输的。
11、高速计数器怎样占用输出点?
高速计数器根据被定义的工作模式,按需要占用CPU上的数字量输入点。每一个计数器都按其工作模式占用固定的输入点。在某个模式下没有用到的输入点,仍然可以用作普通输入点;被计数器占用的输入点(如外部复位),在用户程序中仍然访问到。
12、为什么高速计数器不能正常工作?
在程序中要使用初次扫描存储器位SM0.1来调用HDEF指令,而且只能调用一次。如果用SM0.0调用或者第二次执行HDEF指令会引起运行错误,而且不能改变第一次执行HDEF指令时对计数器的设定
13、高速计数器如何寻址? 为什么从SMDx中读不出当前的计数值?
可以直接用HC0;HC1;HC2;HC3;HC4;HC5对不同的高速计数器进行寻址读取当前值,也可以在状态表中输入上述地址直接监视高速计数器的当前值。SMDx不存储当前值。高速计数器的计数值是一个32位的有符号整数。
14、高速计数器如何复位到0?
选用带外部复位模式的高速计数器,当外部复位输入点信号有效时,高速计数器复位为0, 也可使用内部程序复位,即将高速计数器设定为可更新初始值,并将初始值设为0,执行HSC指令后,高数计数器即复位为0 。
15、为何给高速计数器赋初始值和预置值时不起作用,或效果出乎意料?
高速计数器可以在初始化或者运行中更改设置,如初始值、预置值。其操作步骤应当是:
设置控制字节的更新选项。需要更新哪个设置数据,就把控制字节中相应的控制位置位(设置为“1”);不需要改变的设置,相应的控制位就不能设置。然后将所需 的值送入初始值和预置值控制寄存器。执行HSC指令二、系统认识S7-200
1、S7-200的基本结构
西门子S7-200系列属于整体式小型plc,用于代替继电器的简单控制场合,也可以用于复杂的自动化控制系统。
整体式PLC将CPU模块、I/O模块和电源装在一个箱型机壳内,S7-200称为CPU模块。前盖下面有RUN/STOP开关、模拟量电位器和扩展I/O连接器。S7-200系列PLC提供多种具有不同I/O点数的CPU模块和数字量、模拟量I.O扩展模块供用户选用,CPU模块和扩展模块用扁平电缆连接。
整体PLC还配备有许多专用的特殊功能模块,例如模拟量输入/输出模块、热电偶、热电阻模块、通信模块等,使PLC得功能得到扩展。
S7-200可以选用梯形图、语句表(即指令表)和功能模块语言来编程。它的指令丰富,指令功能强,易于掌握,操作方便。内置有高速计数器、高速输出、PID控制器、RS485通信/编程接口、PPI通信协议、MPI通信协议和自由方式通信功能。最多可以扩展到248点数字量I/O或35路模拟量I/O。最多有26kB程序和数据存储空间。
2、S7-200的CPU模块
S7-200有5种CPU模块,CPU221无扩展功能,适于做小点数的微型控制器;CPU222有扩展功能;CPU224是具有较强控制功能的控制器;CPU226和CPU226 XM适用于复杂的中小型控制系统。
S7-200系列PLC不同型号CPU的技术参数如表1所示
S7-200有传送、比较、移位、循环、求补码、调用子程序、脉冲宽度调制、脉冲序列输出、跳转、数据转换、算数运算、字逻辑运算、浮点运算、开平方、三角函数和PID控制指令等,采用主程序、最多8级子程序和中断程序的程序结构,用户可以使用1-255ms的定时中断。用户程序可设3级口令保护,有监控定时器(看门狗)功能。
数字量输入中有4个用作硬件中断,6个用于高速功能。32位高速加/减计数器的最高计数频率为30kHz,可以对增量式编码器的两个互差90的脉冲列计数,计数值等于设定值或计数方向改变时产生中断,在中断程序中可以及时地对输出进行操作。两点高速输出可以输出频率最高为20kHz频率和宽度可调的脉冲列。
可选的存储器卡可以永久保存程序、数据和组态信息,可选的电池卡保存数据的典型事件值为200天。DC输出型电路用场效应晶体管(MOSFET)作为功率放大器元件,仅DV输出型有高速脉冲输出,最高输出频率为20kHz。
3、S7-200的扩展模块
不同信号的S7-200 CPU上已经集成了一定数量的数字量I/O点,若实际需要的I/O点数超过该CPU的I/O点数时,则通过增加输入/输出扩展模块来达到扩展功能、扩大控制能力。扩展模块有输入/输出扩展、热电偶/热电阻输入扩展和通讯扩展三种类型,通过总线连接器(插件)和CPU模块连接。
扩展单元正常工作需要+5VDC工作电源,此电源由CPU通过总线连接器提供,扩展单元的24VDC输入点和输出点电源,可由基本单元的24VDC电源供电,但要注意基本单元所提供的最大电流能力。
CPU 221无I/O扩展能力;CPU 222最多可连接2个扩展模块(数字量或模拟量);CPU224和CPU226最多可连接7个扩展模块。
(1)输入/输出扩展模块
S7-200系列PLC目前提供如下扩展模块:
①数字量输入扩展模块_EM221(8DI);
②数字量输出扩展模块_EM222(8DO);
③数字量输入和输出混合扩展模块_EM223(8I/O,16I/O,32I/O);
④模拟量输入扩展模块_EM231(3AI,A/D转换时间为25μs,12位);
⑤模拟量输入和输出混合扩展模板_EM235(3AI/1AO,其中A/D转换时间为25μs,D/A转换时间100μs,位数均为12位)
(2)热电偶/热电阻扩展模块
热电偶、热电阻模块(EM231)与CPU222,CPU224,CPU226配套使用,多种分度号热电偶(mV信号)和热电阻(电阻信号)可通过EM231模块将信号送入S7-200。用户通过EM231上的DIP开关来选择热电偶或热电阻的分度号、接线方式、测量单位和开路故障的方向。
(3)通讯扩展模块
除了CPU集成通讯口外,S7-200还可以通过通讯扩展模块连接成更大的网络。S7-200系列目前有两种通讯扩展模块:PROFIBUS-DP扩展从站模块EM277和AS-i接口扩展模块CP243-2。
S7-200系列PLC输入/输出扩展模块的主要技术性能如表2所示。
4、S7-200的通信功能
S7-200的CPU模块自带的RS485串行通信支持PPI、DP/T、自由通信口协议和PROFIBUS点对点协议。每个网络最多126个站,最多32个主站。通信接口可以实现与下列设备的通信:运行编程软件的计算机、文本显示器TD200、OP(操作员面板)、以及S7-200 CPU之间的通信;通过自由通信口协议,可以与其他厂家的设备进行串行通信。
EM277 PROFIBUS-DP从站模块用于将S7-200 CPU连接到PROFIBUS-DP网络。通信速率为9600-12Mbit/s。
工业以太网通讯模块CP243-1的通信速率为10Mbit/s或100Mbit/s,半双工/全双工通信,RJ-45接口使用TCP/IP协议。可用STEP 7-Micro/WIN软件实现通过工业以太网配置和远程编程服务(上载、下载程序,监视状态),通过工业以太网连接其他的CPU,通过S7-OPC在计算机上处理数据。
EM241 Modem(调制解调器)模块支持远程维护或远传诊断、PLC之间的通信、PLC与PC的通信、给手机发送短消息等,EM241参数化向导集成在Micro/WIN V3.2中。
通过CP243-2 AS-i通信处理器,S7-200 CPU可以作为AS-i的主站,最多可以连接62个AS-i从站,接入496个远程数字量输入/输出点。
5、S7-200的编程软件
STEP 7-Micro/WIN 32是专门为S7-200设计的在个人计算机Windows操作系统下运行的编程软件。CPU通过PC/PPI电缆或插在计算机中CP 55111或CP 5611通信卡与计算机通信。通过PC/PPI电缆,可以在Windows下实现多主站通信方式。
STEP 7-Micro/WIN 32的用户程序机构简单清晰,通过一个主程序调用子程序或中断程序,还可以通过数据块进行变量的初始化设置。用户可以用语句表(STL)、梯形图(LAD)和功能块图(FBD)编程,不同的编程语言编制的程序可以相互转换,可以用符号表来定义程序中使用的变量地址对应的符号,是程序便于设计和理解。
STEP 7-Micro/WIN 32为用户提供两套指令集,即SIMATIC指令集(S7-200方式)和国际标准指令集(IEC1131-1)方式。通过调制解调器可以实现远程编程,可以用单次扫描和强制输出等方式来调试程序和进行故障诊断。
S7-200是在美国德州仪器公式的小型PLC的基础上发展起来的,S7-300/400的前身是西门子公司的S5系列PLC,其编程软件为STEP 7。S7-200和S7-300/300虽然有许多共同之处,但是在指令系统、程序结构和编程软件定方面均有相当大的差异。
SIMATIC S7-200 SMART订货数据
①中央处理单元CPU订货号
CPU SR20模块_主要参数:AC/DC/RLY 12DI/8DO_订货号:6ES7 288-1SR20-0AA0
CPU SR40模块_主要参数:AC/DC/RLY 24DI/16DO_订货号:6ES7 288-1SR40-0AA0
CPU ST40模块_主要参数:DC/DC/DC 24DI/16DO_订货号:6ES7 288-1ST40-0AA0
CPU CR40模块_主要参数:AC/DC/RLY 24DI/16DO_订货号:6ES7 288-1CR40-0AA0
CPU SR60模块_主要参数:AC/DC/RLY 36DI/24DO_订货号:6ES7 288-1SR60-0AA0
CPU ST60模块_主要参数:DC/DC/DC 36DI/24DO_订货号:6ES7 288-1ST60-0AA0
②I/O扩展模块EM订货号
EM DI08数字量输入模块_主要参数:8×24VDC输入_订货号:6ES7 288-2DE08-0AA0
EM DR08数字量输出模块_主要参数:8×继电器输出_订货号:6ES7 288-2DR08-0AA0
EM DR16数字量输入/输出模块_主要参数:8×24VDC输入/8×继电器输出_订货号:6ES7 288-2DR16-0AA0
EM DR32数字量输入/输出模块_主要参数:16×24VDC输入/8×继电器输出_订货号:6ES7 288-2DR32-0AA0
EM DT08数字量输入/输出模块_主要参数:8×24VDC输出_订货号:6ES7 288-2DT08-0AA0
EM DT16数字量输入/输出模块_主要参数:8×24VDC输入/8×24VDC输出_订货号:6ES7 288-2DT16-0AA0
EM DT32数字量输入/输出模块_主要参数:16×24VDC输入/16×24VDC输出_订货号:6ES7 288-2DT32-0AA0
EM AI04模拟量输入模块_主要参数:4路输入_订货号:6ES7 288-3AE04-0AA0
EM AQ02模拟量输入模块_主要参数:2路输出_订货号:6ES7 288-3AQ02-0AA0
EM AM06模拟量输入/输出模块_主要参数:4路输入/2路输出_订货号:6ES7 288-3AM06-0AA0
EM AR02热电阻输入模块_主要参数:2路通道_订货号:6ES7 288-3AR02-0AA0
③通信扩展信号板SB订货号
SB CM01通信扩展信号板_主要参数:R485/R232_订货号:6ES7 288-5CM01-0AA0
SB DT04数字量扩展信号板_主要参数:2×24VDC输入/2×24VDC输出_订货号:6ES7 288-5DT04-0AA0
SB AQ01模拟量扩展信号板_主要参数:1×12位模拟量输出_订货号:6ES7 288-5AQ01-0AA0
相关问答
SIMATICS7-200说明书?
SIMATICS7-200是一种可编程逻辑控制器(PLC),由西门子公司生产。它是一款紧凑、可靠的控制器,适用于中小规模的自动化控制和监控系统。SIMATICS7-200控制器具...
plc7-200怎么编写程序?
编写PLC7-200程序需要以下步骤:确定控制需求:首先需要明确需要控制的设备、输入和输出设备、控制逻辑等。选择编程语言:PLC7-200支持多种编程语言,如LadderD...
西门子s7--200PLC怎么与电脑连接和在编程软件中怎么设置?-...
先看你软件是否安装正确,s7-200的应该没有自带通讯线驱动,自己先去下一个安装好,根据导向安装完毕后系统自动会帮你分配ppi端口设置你也可以选,默认的就可以了...
西门子plcs7-200的调试步骤?
西门子PLCS7-200的调试步骤如下:确认硬件连接:检查PLC和外部设备的接线是否正确,如有需要请参考设备的安装手册。编写程序:使用西门子Step7-Micro/WIN程...
西门子plc200扩展模块怎么组态?
答:西门子200PLC是没有硬件组态的;模块直接连上就行,建议CP以太网模块放在CPU后面;然后接模拟量,开关量模块;CP模块需要编程软件进行一个组态,配置IP地...
s7-200编程软件肿么打开plc程序-ZOL问答
可以,在step7micro/win中选PLC菜单里面有清除选项,清除后上电复位就是空的了。...WIN7不兼容西门子S7-200PLC的编程软件。我装了又删了。有用(0)回复还是用X...
电脑怎么安装pLC200驱动器?
要安装pLC200驱动器,首先需要准备好该驱动器的安装程序和相应的驱动文件。将安装程序运行后,根据提示进行操作。在安装过程中,需要选择好驱动器所需的参数并进...
西门子S7-200怎么实现远程在线编程?
现场的PC连接好PLC,在现场PC安装teamviewer软件,并可以联网。远处PC也安装teamviewer,软件用法官网有,用什么版本自己选。就是远程协助,比QQ什么的好多了...
西门子plc200编程怎样让主程序是一个方块带引脚?
从左边竖线开始、到右边的线圈输出、就是一个回路、左边的竖线就是24v的电源、线圈后面的竖线其实就是0v、从左到右都通了、就是有电流流过、就是个回路了从...
西门子PLCS7-200的说明书
一、西门子S7-200系列PLC指示灯说明S7-200系列PLC指示灯通常包括SF、RUN、STOP指示灯和开入开出指示灯,通过SF、RUN和STOP三个指示灯可以判断出CP...