
本文用S7-200 编写的几个实例都是在网上发表或在回答网友的求助编写的,程序短小,针对性强,有程序解析,特别适合初学者学习参考。
一、
网友求助“西门子PLC用一个按钮控制电机启停,不容许用中继,可用计数器定时器…”
答复:只用PLC一条指令,就可实现电机启停。见下图:


该梯形图编程技巧是:在SR触发器的输出端接Q0.0的输出线圈,再用Q0.0的常开与常闭点串接在R、S输入端上,这样的编程处理可确保动作的可靠性。该梯形图的工作原理说明,请见“用S7-200编程的三个实例解析”中的第1例。
二、
用S7-200编程,可实现用一个按钮可控制电机的正传、反转、停车的梯形图

延时摄影是一种新兴的拍摄技法,它是利用相机定时进行的间隔拍摄。- 特殊功能:接通延时,锁存接通延时,断开延时,脉冲延时,锁定延时,计数器(加计数/减计数),时间开关,间隔延时继电器,运行小时数计数器,触发器,异步脉冲发生器,年时间开关,舒适照明开关功能,随机发生器,楼梯照明开关功能(符合 din 18015-2),边沿触发间隔延时继电器,组合接通/断开延时,模拟值比较器,模拟触发器,模拟值变化触发器,模拟看门狗,模拟放大器,文本和变量显示,移位寄存器,软键功能,pi 控制器,斜坡功能,模拟复用器,pwm 功能,模拟算术运算功能,模拟算术运算功能错误检测功能。比较器甲输出的信号vb1经过延时后得到vb2,vb1和vb2进行或非运算再经过一次反向后得到屏蔽电路的输出信号vbout。

工作原理及操作说明:
1)开机SM0.1将MB5置1、MB6清0,由于M6.0、M6.1皆为0,使Q0.0与Q0.1都=0,故电机停止不动。
)由52y(防跳辅助继电器)实现在合闸脉冲过程中按下11-52c合闸按钮→qf合上后→52a/1触点39-40闭合→52y继电器通电,则①52y触点31-32打开,切断52c合闸回路,防止qf因故障跳闸后再次合闸②52y触点13-14闭合→自保持③52y触点21-22延时断开→切断启动电流7.弹簧未储能或储能没到位,允许qf合闸吗。伺服主要靠脉冲来定位,基本上可以这样理解,伺服电机接收到1个脉冲,就会旋转1个脉冲对应的角度,从而实现位移,因为,伺服电机本身具备发出脉冲的功能,所以伺服电机每旋转一个角度,都会发出对应数量的脉冲,这样,和伺服电机接受的脉冲形成了呼应,或者叫闭环,如此一来,系统就会知道发了多少脉冲给伺服电机,同时又收了多少脉冲回来,这样,就能够很精确的控制电机的转动,从而实现精确的定位,可以达到0.001mm。- 特殊功能:接通延时,锁存接通延时,断开延时,脉冲延时,锁定延时,计数器(加计数/减计数),时间开关,间隔延时继电器,运行小时数计数器,触发器,异步脉冲发生器,年时间开关,舒适照明开关功能,随机发生器,楼梯照明开关功能(符合 din 18015-2),边沿触发间隔延时继电器,组合接通/断开延时,模拟值比较器,模拟触发器,模拟值变化触发器,模拟看门狗,模拟放大器,文本和变量显示,移位寄存器,软键功能,pi 控制器,斜坡功能,模拟复用器,pwm 功能,模拟算术运算功能,模拟算术运算功能错误检测功能。
3)电机停转:按下按钮不抬起,此时MB5=0000_0001。延时1秒后T102动作,T102=1的前沿,将MB5送入MB6,之后MB5清0,此时M6.0=1、M6.1=0,故Q0.0、Q0,1皆为0,电机停止转动。当按钮抬起时,T101的后沿触发MB0,使MB5=1。
当人们进出门结束后,BG1基极无信号而截止,J1释放,再经过一定时间(此时间由R3、C1的值决定),IC3的③脚输出低电平,BG2截止,IC4的③脚受由低到高的脉冲触发,其①脚输出高电平,一方面使BG3导通,J3得电,J3-1使电机接通市电,此时因J2不工作,J2-2动触头已回到“b”位,故电机反转,门开始关。4. 设定伺服运转模式:如正/反转脉冲,脉冲/5.伺服自整定(offline tuning)模式选为 1,连接负载,自动测算惯量比 一般在参数 pr_3 中选择 700rpm 的 tuning 速度,此时得到的惯量比值最准确。单片机机中,有时钟周期,机器周期,指令周期,初学者往往不能弄清楚他们之间的关系,这里我就简单介绍一下.在说明之前我首先要明确几个概念,既什么是周期和频率,相信大多数人都知道他们的含义,周期就是物体循环一周的时间,频率就是1 秒钟内循环的次数.单片机是靠脉冲工作的,既一个脉冲单片机产生一个操作.下面言归正传.时钟周期:时钟周期也称为振荡周期,定义为时钟脉冲的倒数(可以这样来理解,时钟周期就是单片机外接晶振的倒数,例如12m的晶振,它的时间周期就是1/12 us), 既产生一个脉冲的时间,是计算机中最基本的、最小的时间单位。

4、设计中的计算要求编程,上机计算,打印程序、结果。举例来说,你用dx11 api编程,但程序可同时适用于dx9、dx10、dx11级别硬件,只不过在档次较低的硬件上,功能特性会有所限制,dx9.0c上就是fl9_3。大一下接触了嵌入式的开发,刚开始用的是最简单的51单片机,记得写的第一个嵌入式程序就是“流水灯”,虽然很简单,但更进一步的让我学会了用编程的思想去解释这个世界,虽是一个简单的流水灯,但在我们的生活中却随处可见,超市门前的电子公告屏,演唱会上粉丝们手持的led板等等等等,嵌入式的开发给了我一种全新的成就,将我的程序嵌入到一个硬件上,仿佛是赋予了这个硬件一个生命,我仿佛在创造世界,这种成就感和自豪感恐怕每一位程序员初期都会有的。
三、
网友求助:“s7-300里的定时器t1,怎么循环启动? 现在是,使用完一次,t1就停止了!而我想用T1实现每隔2秒重复一个动作!请大家帮忙,谢谢!”

再说具体各门应该怎么做,英语方面,之间一直强调的是,真题要现在留来作为大杀器,在阅读敏感性跟单词都准备的差不多的情况下,每隔个两三天就模拟考试一次,到现在我相信好多高手都能做到二十道错个两三道的。因为不能让这个定时存盘循环一直执行,退出记事本后,必须自动退出脚本并结束循环,所以设计了一个循环判断条件“wshshell.appactivate txtfilename=true”,当记事本运行中时,可以激活记事本窗口,这个条件运行结果为“true”,定时存盘循环一直执行,退出记事本后,脚本无法激活记事本窗口,就会跳出循环,执行“wend”后面的“wscript.quit”退出脚本。参数设置操作方法:1. 按功能键设定系统参数顺序:水箱设定温度、循环上限水位、循环下限水位、定时上水水位、北京时间小时、北京时间分钟、第1次定时加热小时、第1次定时补水小时、第2次定时加热小时、第2次定时补水小时、第3次定时加热小时、第3次定时补水小时、返回正常显示。

回复:“ 楼主:根据你的要求“其实,我就是想用定时器来实现每隔3秒,QB0循环右移一位。”我给你编出用S7-200和用S7-300编出的功能一样的梯形图。从图中可以看出,S7-200由于采用字节循环右移指令,所以编出程序简短易懂。S7-300由于没有字节循环右移指令,就得通过编程来达到同样的功能作用,编出的程序相对长了一些,看懂梯形图也相对难了一点。有什么问题可以提出,我可以解答。 ”
解析梯形图:
1、图一是用S7200编写的图形图,其编程技巧有二:(1)用通电延时定时器T101的常闭点连接T101的线圈构成振荡器,其脉冲的低电平为3秒宽度,高电平为连续二个扫描周期的间隔时间,即只出现一次,故可直接用T101的常开触点去触发QB0的循环右移,而不需选用其前沿触发,就可确保QB0只右移一次。(2)、选用字节循环右移指令,在T101=1的这一扫描周期里将此时刻的QB0内容右移一位,同时又自动的将移出的QB0的最高位(Q0.7)送回QB0的最低位(Q0.0)(如不需循环右移,可改用字节右移一位的指令),使编程简短易懂。
2、图二是用S7300编写的图形图,其编程技巧也是使用T101构成的振荡器,利用该振荡脉冲的正方波在程序扫描中只出现一次的特点,完成将QB0右移一位。由于S7-300没有字节移位指令,编程是这样处理:将QBO送入MW7的低字节MB8中,右移一位MW7,MB8也随之右移一位, MB8的最高位移到MB7的最低位(即M8.0),再把M8.0送入M7.0中,再把MB8送回QB0,从而实现了将QB0内容的循环右移一位的功能,如程序不需要循环右移,可将“M7.0àM8.0”这条语句去掉就可以了。
四、
网友求助:“如何把一个字节的全部位,高位低位反向重排。”
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/ruanjian/article-101241-1.html
都是这样