直播课堂
HOME
直播课堂
正文内容
smart plc编程技巧 「零基础入门PLC」S7-200 SMART 编程技巧及实例分享
发布时间 : 2025-01-21
作者 : 小编
访问数量 : 23
扫码分享至微信

「零基础入门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系统,如何编写出质量较高的PLC程序?

一西门子PLC按照控制规模来分类

可以分为小型机、中型机和大型机。

一 西门子小型机:

小型机:小型机的控制点一般在256点之内,适合于单机控制或小型系统的控制。

1 S7-200

S7-200是西门子公司推出的一种小型PLC,它的优点是

(1)结构紧凑,占用空间小。

(2)拓展型良好,可以接称重模块,数字量、模拟量输入输出模块等等,使用起来非常方便。

(3)价格低廉

但是除此之外,它还有一些缺点:

(1)虽然国内还可以买到这种PLC的备件,但西门子公司宣布这款产品已经停产,未来的发展很受限。

(2)没有以太网接口,只可以使用西门子配套电缆进行调试编程,不方便。

(1)对于运动控制的支持不好。(S7-200的大多数PLC脉冲输出最大频率是20KHZ,S7-200smart的最大频率是100Khz,也就是对伺服电机的驱动不是很好。)

2 S7-200smart

S7-200smart是西门子公司针对中国市场研发的一款产品,只在中国销售。其原因可能是西门子的S7-200已经停产,西门子公司又不想放弃中国庞大的低端PLC市场,而作为S7-200的升级版,与S7-200相比,它有以下的特点:

(1)同是小型PLC,结构紧凑,价格低廉。

(2)拓展能力不如S7-200,它不支持称重模块,所以你不能使用精确的称重功能,可以选择用称重仪表模拟量输入代替,但精确度不如称重模块。

(3)Smart拥有以太网接口,调试编程拓展都非常方便。

(4)运动控制的支持比S7-200强大。无论是最大脉冲输出,还是运动控制向导,都比S7-200好用。

3 西门子S7-1200

S7-1200是一款紧凑型、模块化的PLC,可完成简单逻辑控制、高级逻辑控制、HMI 和网络通信等任务。

西门子中型机:

中型机: 中型机的控制点一般不大于2048点,可用于对设备进行直接控制,还可以对多个下一级的可编程序控制器进行监控,它适合中型或大型控制系统。

西门子中型机有S7-300: 处理速度0.8~1.2ms ;存贮器2k ;数字量1024点;模拟量128路 ;网络PROFIBUS;工业以太网;MPI。

西门子大型机:

大型机的控制点一般大于2048点,能完成较复杂的算术运算。

1 西门子S7-400

西门子S7-400PLC的主要特色为:极高的处理速度、强大的通讯性能和卓越的CPU资源裕量。

2 西门子S7-1500

西门子S1500是西门子博途系列,也是西门子未来发展的主体方向,其性能自然非常好!

软件及编程语言:

对于西门子所有的PLC,我们都已经整理了版本!需要软件的的同学可以点赞加关注并转发,然后留言“我要西门子软件”,让更多人能够分享到软件。

S7-200的编程软件是“STEP 7-Micro/WIN V4.0 ”留言后可以发私信;西门子200

西门子S7-200smart的编程软件是“STEP7‑Micro/WIN SMART ”。留言后可以发私信;西门子200smart。

西门子S7-300/400的编程软件是“STEP7”。留言后可以发私信;西门子300。

西门子S7-1200/1500的编程软件是“TIA PAORTAL”。留言后可以发私信;西门子博途。

西门子的编程语言主要有:LAD,FBD,STL,SCL,GRAPH,SFC,CFC等等,

在国内,大多数工程师只使用LAD,FBD,高级一点的使用STL,PCS7会涉及到SFC和CFC,其他的大多数时候都是外国工程师在使用,以后有机会我们会讲一些这些常用语言,也会拓展非常用语言。便于大家学习。

二 控制模式

西门子PLC在编程时主要有以下几种控制方式,系统设置远程/本地/手动按钮:

远程: 只能通过上位机对系统进行自动启/停控制,单台设备就地控制优先,在程控时,可以通过上位机对设备进行软手操/自动切换,软手操启/停。

本地: 只能通过触摸屏对系统进行自动启/停控制,单台设备就地控制优先,在程控时,可以通过触摸屏对设备进行软手操/自动切换,软手操启/停。

手动: 手动控制时,上位机/触摸屏失效,只能通过手动控制设备的启/停。

单台设备控制

单台设备必须有软手操/自动切换以及软手操时可以启/停功能,由自动切换到软手操时,设备不能停机;由软手操切换到自动时,设备启/停取决于自动程序。

单台设备

(泵、风机及其它大型设备)运行满24小时必须进行轮换,且必须有运行时间累计,如果由上位机设定启/停顺序除外,操作人员自行设定。

西门子程序FB和FC的区别:

FC:功能,它没有自己的数据块。

FB:功能块,它有自己的存储区,即背景数据块。FB=FC+DB(背景数据块).

如果FC也想使用数据功能的话,需要在外部连接全局数据块进行数据存储。

程序结构统一规范

OB1:主程序

OB100:初始化程序(无需主程序调用) 

OB35:100ms(可修改)中断(无需主程序调用),可以调用PID模块;

OB80、OB82、OB85、OB86、OB87、OB121、OB122:故障诊断模块(无需主程序调用、无需编程)

功能块和数据块:

FC1:系统模式 FC2:输入处理

FC3:输出处理 FC4:运行处理

FC5:停止处理 FC6:手自动切换

FC100:之后用来建立一些可以循环调用的子程序

FC105:系统自带,模拟量输入子程序(可以循环调用)

FC106:系统自带,模拟量输出子程序(可以循环调用)

modbus通讯(CP341):FB7:P_RCV_RK,FB8:P_SND_RK

通讯CP340:FB2:P_RCV,FB3:P_SND

一般PID:用FB41

温、湿度PID:用FB58

如果程序块与系统块重复,请避让。

DB1:AI数据,类型:REAL,与上位机接口

DB2:AO数据,类型:REAL,与上位机接口

DB3:DI数据,类型:BOOL,与上位机接口

DB4:DO数据,类型:BOOL,与上位机接口

DB5:设备运行时间及流量累计,类型:REAL,与上位机接口;

DB6:报警消息,类型:BOOL,与上位机接口

DB7:类型:REAL,中间寄存器

DB8:类型:INT,中间寄存器

DB9:类型:WORD,中间寄存器

DB10:类型:BOOL,中间寄存器

DB11:之后用作与设备通讯用,例如:MODBUS通讯等

DB100:之后用作调用FB块时的背景数据块

M区:也作为中间变量

功能块FC,FB和数据块DB以上只是经验丰富的工程师根据多年的经验进行总结,试图找到一种通用的方式,但不是说这些块就必须严格按照上述功能来编写程序,西门子程序功能是开放的,你可以按照自己的风格私人定制。

记住,学习西门子PLC编程的技巧是:多看,多学,多模仿!

相关问答

plc程序怎么强制运行?

操作方法01如果在对PLC进行调试时需要对某段程序强制运行使设备动作,需要先将程序写入PLC。02PLC编程软件可以对程序强制ON或OFF,加入我们使程序中第25步...

郑州西门子PLC电柜200smartTCP通信常见问题解决方法有哪些大...

[回答]郑州西门子PLC电柜当西门子S7-200SMARTPLC编程软件输入触点输入错误,一直是问号时:输入触点完之后,按一下回车键,或者点击空白处即可。郑州西门子P...

如何将原来的S7-200PLC程序转换为S7-200SMARTPLC程序?

程序可以用smart直接打开,但是smart和200存在一些差异,比如模拟量输出的地址分配规则,拓展模块的组态等,需要手动修改。程序可以用smart直接打开,但是smart和...

哪位大仙,急急急!河南西门子plc电柜200smartTCP通信常见问...

[回答]河南西门子plc电柜当ERROR显示24号错误:24号表示目前没有操作正在进行。表示空闲状态。河南西门子plc电柜当西门子S7-200SMARTPLC编程软件输入触点...

西门子plc如何上传程序到电脑里?

要上传西门子PLC程序到电脑中,需要使用专门的编程软件,例如STEP7或TIAPortal。首先,需要连接PLC与电脑,可以使用USB或以太网接口。然后,在编程软件中创...

西门子200SMARTPLC关于控制伺服电机问题?

选个能通信的PLC,一般都带自带通信功能,然后把通讯先接伺服驱动器上,然后写程序,然后调整伺服驱动器参数,把电源线接上,启动就完了选个能通信的PLC,一般都带...

西门子200plc编写模拟量程序时指令sm0.0是什么意思?

SM0.0是Always_On即常开的意思,就是一直保持导通。因为200不能直接连接输出,故需要在前连接SM0.0。SM0.0是Always_On即常开的意思,就是一直保持导通。因为200...

smart200怎么和plc通信不上?

你是不是要问200plc没有网口怎么与200smart通讯?很简单,1:200plc加一个以太网通讯模块cp,设置一个ip。2,给smart设置一个同网段的ip,不要重复,而且是同一...

plc里面vb代表什么?

这些是V寄存器中不同数据类型表示方法在西门子PLC中:VB表示V存储区的一个字节Byte,可用于存放短整型数据。VW表示V存储区的一个字Word,可用于存放整型数据。...

触摸屏的时间跟plc的时间如何同步?

触摸屏和PLC(可编程逻辑控制器)的时间同步可以通过以下几种方式实现:1.使用专门的时间同步协议:有一些专门的工业通信协议,如SNTP(简单网络时间协议)或NT...

 雷吉-埃文斯  不打小孩日 
王经理: 180-0000-0000(微信同号)
10086@qq.com
北京海淀区西三旗街道国际大厦08A座
©2025  上海羊羽卓进出口贸易有限公司  版权所有.All Rights Reserved.  |  程序由Z-BlogPHP强力驱动
网站首页
电话咨询
微信号

QQ

在线咨询真诚为您提供专业解答服务

热线

188-0000-0000
专属服务热线

微信

二维码扫一扫微信交流
顶部