西门子200PLC中顺序控制指令的简单讲解
西门子200的PLC编程软件Micro/win中是配置有实现顺序控制功能的指令的,因为我个人也也很少用,最近有个项目想使用这个方法,就研究了一下,顺便给小伙伴们分享一下。其实,我最终还是使用的很多set/reset指令去做的程序,不过喜欢用哪种方式,还是看个人的爱好,不过还是发出来让想用的朋友们了解一下!
先看一下西门子200中顺序控制的指令吧:
顺序控制的3个指令
如图,红框中是梯形图编程时候指令树下的程序控制指令中的3个指令。来看一下这3个指令的大概意思:
SCR是装载顺序继电器,作为顺序控制段的段首,也就是开始顺序控制。
SCRT是转换,就是条件转换的意思,从一个顺序继电器转换到另外一个顺序继电器。
SCRE是结束顺序控制。
指令大概了解了,就来看一段程序吧:
程序的第一段监控截图
该图片上网络1我用M0.0去置位S0.0,目前大家看到S0.0不为1,是因为被网络5的SCRT指令转换了,S0.0就自动被复位为0了。从下边的图片可以看到, S0.0为0,而S0.1为1了,就是已经转换了。
程序执行第一段时的监控状态图
从这个图片上还可以看到更多的信息,就是M10.0为1,而Q0.0不为1; Q0.0不为1,所以T1就没有再计时了。原因是什么呢?就是前一个图片上我写的,S0.0=1的时候,SCR和SCRE那段之间的程序才能被执行;现在S0.0=0了,中间的这段程序就不能被执行了。--这就是和300PLC或者其他PLC中顺序控制的作用一样的地方了。
接着往下边看程序:
如下图,上边说SCRT转换指令使得S0.0被复位,而S0.1被置位,就使得网络7和网络9之间的程序处于可以执行状态。我把M0.2设置为1,Q0.1和Q0.2就输出了。
当S0.1为0的时候,即使M0.2的值为1,Q0.1和Q0.2依然是无法输出的。
程序的后一段监控截图
程序讲完了,再来说一些使用中的约束
约束1: 在西门子200micro\win中编程的时候,一般是要求母线和后边的指令之间是必须要有一个接点指令的,所以我们常常要使用SM0.0。但是,SCR和SCRE指令是个例外,以及LBL和NEXT指令,它们可以直接接母线,而中间不能有其他指令,否则将出现编译错误!如下图:
SCR和SCRE指令必须直接接母线
约束2: 这3个顺序控制继电器指令的操作数只能是S区,注意不是SM,如果你指定的操作数是V区或者M区,总之不是S0.0这样的顺序控制继电器,直接会显示红色波浪线提示错误。
约束3: SCRT转换指令应该写在前一个顺控的SCRE结束指令之前,否则会出现非致命错误,导致无法下载。这个是可以理解的,因为如果前一个顺控结束了,还何谈转换呢?
如下图,我把结束指令SCRE本应该写在网络7的,提取到网络5,就是在SCRT指令之前。
SCRT指令如果在SCRE指令之后程序无法下载
在下载的时候,就出现了如下的错误,这错误是和未下载之前在输出窗口输出的编译错误是不同的。这种情况是编译时候输出窗口没有报错,而下载的时候报错的!
下载是提示非致命错误
至此,文章就结束了,实现顺序控制的编程方法多种多样,但是主流的PLC都配置有顺序控制的专门指令,西门子200也不例外。希望通过本文,能让想使用顺序控制专用指令的小伙伴对西门子200PLC中的编程有更多了解。
感谢阅读,如果觉得对你有帮助请关注,如果有问题请关注+留言,谢谢!
中英文对照版的PLC控制指令,不收藏备用可惜了~
日常工作中,很多工友由于英文基础差,导致使用PLC时困难重重,今天,小编收集了很多PLC控制指令,是中英文对照版的,希望能给大家日常工作中带来帮助。
1、LD( Load 装载 ) :动合触点
2、LDN( Load Not 不装载 ) : 动断触点
3、A( And 与 动合) : 用于动合触点串联
4、AN( And Not 与 动断 ) :用于动断触点串联
5、O( Or 或 动合 ) :用于动合触点并联
6、ON( Or Not 或 动断 ) : 用于动断触点并联
7、=( Out 输出 ) : 用于线圈输出
8、OLD( Or Lode): 块或
9、ALD( And Lode): 块与
10、LPS( Logic Push ) :逻辑入栈
11、LRD( Logic Read ) :逻辑读栈
12、LPP( Logic Pop ) :逻辑出栈
13、NOT( not 并非 ) :非
14、NOP( No Operation Performed ) : 无操作
15、AENO( And ENO ) :指令盒输出端ENO相与
16、S( Set 放置 ) : 置1
17、R( Reset 重置,清零 ) :清零
18、P( Positive) :上升沿
19、N( Negative) :下降沿
20、TON( On_Delay Timer ) :接通延时定时器21、TONR( Retentive On_Delay Timer ) : 有记忆接通延时定时器
22、TOF( Off_ Delay Timer ) :断开延时定时器
23、CTU( Count Up ) : 增计数器
24、CTD( Count Down ) : 减计数器
25、CTDU( Count Up/ Count Down ) :增减计数器
26、ADD( add 加 ) : 加注意
//ADD_I (_ I 表示整数)
ADD_DI( DI表示双字节整数)
ADD-R(R 表示实数)
它们都是加运算只是数的大小不同。
27、SUB( Subtract 减去,减少) :减
28、MUL( Multiply ) : 乘
29、DIV( Divide ) : 除
30、SQRT( Square root ) : 求平方根
31、LN( Napierian Logarithm 自然对数 ) : 求自然对数
32、EXP( Exponential 指数的 ) : 求指数
33、INC_B( Increment 增加 ) : 增1
//其中_B代表数据类型 还有W(字节)、DW双字后面几个都是这样的。34、DEC_B( Decrement 减少 ) : 减1
35、WAND_B( Word and 与命令 ) :逻辑与
36、WOR_B( Word or 或命令) : 逻辑或
37、WXOR_B( Word exclusive or 异或命令) :逻辑异或
38、INV_B( Inverse 相反 ) : 取反
39、MOV _B( Move 移动 ) : 数据传送
40、BLKMOV_B( Block Move 块移动) :数据块传送
41、SWAP( Swap 交换 ) : 字节交换
42、FILL( Fill 填充 ) : 字填充
43、ROL_B( Rotate Left 循环 向左) :循环左移位
44、ROR_B( Rotate Right 循环 向右) : 循环右移位
45、SHL_B( Shift Right 移动向左) :左移动
46、SHR_B( Shift Right 移动向右 ) : 右移动
47、SHRB( Shift buffer 移动缓存) :寄存器移位
48、STOP( Stop 停止 ) : 暂停
49、END/MEND( End /Mend ) : 条件/无条件结束
50、WDR( Watch dog reset ) : 看门狗复位
51、JMP( Jump 跳) :跳转
52、LBL( Label 位置 ) : 跳转标号
53、FOR( For 循环 ) : 循环
54、NEXT( Next 再下去) :循环结束
55、SBR( Subprogram Regulating子程序控制 ) : 子程序调用
56、SBR_T( Subprogram Regulating Take ) : 带参数子程序调用
57、SCR( Sequence Control 顺序控制 ) : 步开始
58、SCRT( Sequence Control Transfer 顺序控制转移 ) : 步转移
59、SCRE( Sequence Control End 顺序控制结束 ) : 步结束
60、AD_T_TBL( Add data to table 添加数据到表格中) : 填数据表
61、FIFO( First in First out 先进先出 ) : 先进先出
62、LIFO( Last in First out 后进先出 ) :后进先出
63、TBL_FIND( Table Find 表格查找 ) : 表查找
64、BCD_I( Binary Coded Decimal _I 二进制编码的十进制 ) :BCD 码转整数
65、I_BCD( I_ Binary Coded DecimaL ) :整数转BCD码
66、B_I( Bit to int ) :字节转整数
67、I_B( int to bit ) :整数转字节
68、DI_I( Double int to int ) :双整数转整数
69、I_DI( int to double int ) :整数转双整数
70、ROUND( Round 取整 ) : 实数转双整数
71、TRUNC( Trunc 截取 ) :转换32位实数整数部分(舍去小数取整)
72、DI_I(double int to int ) :双整数转实数
73、ENCO( Encode 编码) : 编码
74、DECO( Decode 译码) :译码
75、SEG( Segment decoder分断译码器 ) : 七段显示译码器
76、ATH( ASCII码 turn hex ) : ASCII码转16进制
77、HTA(Hexadecimal toascii) : 16进制转ASCII码
78、ITA( // int to ascii) : 整数转ASCII码
79、DTA( // double int to ascii ) : 双整转ASCII码
80、RTA( // real to ascii) : 实数转ASCII码
81、ATCH(//attach ) : 中断连接
82、DTCH( Depatch ) : 中断分离
83、HDEF( High speed counter definition ) : 高速计数器定义
84、HSC( High Speed Counter 高速计数器 ) :启动高速计数器
85、PLS( Pulse 脉冲 ) :脉冲输出
86、READ_ RTC( Read real time clock 读实时时钟 ) :读实时时钟
87、SET_RTC( Set real time clock ) : 写实时时钟
88、XMT( Transmitter ) : 自由发送
89、RCV( Receive 接收 ) : 自由接收
90、NETR( Net read 网络读 ) : 网络读
91、NETW( Net write 网络写 ) : 网络写
92、GET_ADDR( Get address 获取地址 ) : 获取口地址
93、SET_ADDR( Set address 设置地址 ) : 设定口地址
94、PID( Proportional Integral Differential 比例、积分、微分 ) :比例积分微分调节器。
——END——
相关问答
西门子中scre是什么?
Scre是西门子公司中的一个部门,全称为SiemensCorporateResearch,是西门子公司的研究和开发机构之一。Scre致力于提供创新的技术解决方案,为西门子公司的各个...
plc中ctu代表什么意思?
当CXX的当前值大于等于预置值PV时,计数器位CXX置位。当复位端(R)接通或者执行复位指令后,计数器被复位。当它达到最大值(32,767)后,计数器停止计数。plc...
西门子PLC顺序控制指令的简介?
西门子S7-200系列PLC提供了顺序流程的相关指令,即顺序控制继电器指令LSCR、SCRT、SCRE。LSCRn是标记一个顺序控制器段(SCR)的开始,n为顺序控制器S的地址,当n...
ctu在程序中什么意思?
PLC编程指令:TONR有记忆接通延时增计数器(CTU)顺序状态转移指令:当SCRT指令的输入端有效时,一方面置位下一个SCR段的状态器,已便使下一个SCR段开...
step7micro/win能绘制plc顺序功能图吗?
这个图其实是我在LAD编程下编写好程序,切换到FBD视图的,因为刚好写了一篇关于西门子200中顺序控制指令的文章,有兴趣可以去看一下。图中红圈①SCR和SCRE之间...