电动机功率 | 3kW | 外形尺寸 | 2mm |
---|---|---|---|
应用领域 | 环保,食品/农产品,地矿,包装/造纸/印刷,纺织/印染 | 重量 | 2kg |
全新的西门子S7-1500PLC 带来了标准型,紧凑型,分布式以及开放式不同类型的 CPU 模块。凭借快速的响应时间、集成的 CPU 显示面板以及相应的调试和诊断机制,SIMATIC S7-1500 的 CPU *地提升了生产效率,降低了生产成本。
![]() |
参考价 | ¥224 |
订货量 | 1 |
更新时间:2019-06-10 10:39:13浏览次数:201
联系我们时请说明是化工仪器网上看到的信息,谢谢!
湖南西门子S7-1500PLC模块代理(优势价格)
S7-300/400系列PLC移位和循环指令
LAD移位指令可以将输入参数IN中的内容向左或向右逐位移动。循环指令可以将输入参数IN中的全部内容循环地逐位左移或右移,空出的位用输入IN移出位的信号状态填充。
STL移位指令将累加器1的低字或者全部内容向左或向右逐位移动。循环指令将累加器1的全部内容循环地逐位左移或右移,空出的位用累加器1移出位的信号状态填充。移位和循环指令参数如表2-35所示。
字移位指令移位的范围0~15,双字移位指令移位的范围0~31,对于字、双字移位指令,移出的位信号丢失,移空的位使用0补足,例如将一个字左移6位,移位前后位排列次序如图2-21所示。
带有符号位的整数移位范围为0~15,双整数移位范围为0~31,移位方向只能向右移,移出的位信号丢失,移空的位使用符号位补足,整数位负值,符号位为1,整数位正值,符号位为0。例如将一个整数右移4位,移位前后位排列次序如图2-22所示。
使用STL编程时,注意固定的格式,例如一个字左移5位的程序:
L 5 //移动的位数
LMW 120 //移位的变量
SLW
TMW 122 //移位结果
执行移位指令时,将累加器2中的值作为移动的位数,对累加器1中的值进行移位操作。
循环移位指令只能对字进行操作,移位范围为0—31,如果移位大于32,实际移位为
((N-1)modul0 32)+1,高位移出的位信号插入到低位移空的位中。例如将一个双字循环左移3位,移位前后位排列次序如图2-23所示。
STL编程语言中,RLDA与RRDA指令对双字进行循环移位操作,每次触发时循环左移或右移一位,将状态字中CC1的信号插入移空的位上。如果移出的位信号为1,置位状态字中CC1位,可以触发JP程序跳转指令进行逻辑判断。
程序控制指令实现函数、函数块的调用以及通过主控传递方式(Master Control Relay)实现程序段使能的控制,程序控制指令如表2-34所示。
1.LAD程序控制指令
(1)主控传递指令
主控传递可以将程序段分区、嵌套控制。在控制启动指令-(MCRA)和控制停止指令-(MCRD)间,通过主控传递接通指令-(MCR<)和主控传递断开指令-(MCR>),可以多将一段程序分成8个区,只有打开*个区,才能打开第二个区,依此类推,每打开一个区,才能执行本区的程序。-(MCRA)、-(MCRD)及-(MCR>)指令前不能加入触发条件,-(MCR<)指令前必须加入触发条件。主控传递指令使用的示例程序如图2-17所示。
在示例程序中,如果M1.1为1,打开MCR程序分区1,分区1中的程序可以运行,例如11.2为1,将置位Q2.1;如果M1.2为1,打开MCR程序分区2,分区2中的程序可以运行,例如I1.1为1,触发Q2.0输出;如果M1.1为0,分区1关闭,即使I1.1为1也不能触发Q2.0输出,程序分区相互嵌套。
(2)程序调用指令
集成于STEP 7函数库“Libraries”或用户编写的函数及函数块(FB Blocks、FC Blocks目录)必须在主程序中才能运行,使用指令CALL_FB、CALL_FC、CALL_SFB、CALL_SFC可以对不同函数、函数块进行调用,指令的使用如图2-18所示。程序段1中调用无形参必须赋值,否则报错,如果已经编写FC1,在“FC Blocks”库中可以找到,可以将FC1直接拖放到程序段中。程序段2为系统函数的调用,必须对形参赋值,否则报错,在“System FunctionBlocks”系统函数库中,将需要调用的函数直接拖放到程序段中。程序段3、4为函块和系统函数块的调用。它们的共同特点是都需要拖放到程序段中,在函数块的上方写入未使用的数据块作为背景数据块,点击“确认“自动生成,每次调用函数块或系统函数块时,必须分配不同的数据块号。
使用-(CALL)指令只能调用函数FC和系统函数SFC,并且函数不能带有形参,否则不能赋实参,指令的使用如图2-19所示。
图2-19 -(CALL)指令
在图2-19的程序中,如果M1.1为1,调用函数FC1,FC1必须用手动输入。注意:如果没有预先创建函数或函数块,调用函数FC1,FC1必须用手动输入。
(3) -(RET)返回指令
如果在主程序中执行返回指令,程序扫描重新开始;如果在子程序中执行返回指令,程序扫描返回子程序调用处,以上两点共同的特点是返回指令后面的程序不执行。返回指令的使用如图2-19所示。
在图2-20所示的示例程序中,如果M1.2为1,执行返回指令,CPU不扫描程序段3的程序。
2.STL控制指令
(1)主控传递指令
STL主控传递指令与LAD编程语言中使用主控传递指令的方法相同,使用STL编程的实例程序介绍如下:
MCRA
A I10.0 //启动MCR分区
MCR( //10.0为1,激活MCR分区1,Il0.0为0,关闭MCR分区1
A I10.2
MCR( //110.2为1,激活MCR分区2,I10.2为0,关闭MCR分区2
A I40.0
= Q 80.O //如果MCR分区2关闭,Q80.0被复位0,与I40.0的值无关
LMW 20
TQW 100 //如果MCR分区2关闭,O将传送到QW100中
)MCR//MCR分区2结束
A I10.4
= Q80.2 //如果MCR分区1关闭,Q80.2被复位0,与U10.4的值
无关
)MCR //MCR分区1结束
MCRD //MCR分区结束
A I10.1 //下面的指令与MCR分区无关
= 0 80.1
(2)程序调用指令
STL编程语言中包括“CALL”、“CC”和“UC”指令,用于程序的调用。CC(有条件调用)与UC(无条件调用)指令只能调用无形参的函数、函数块,与LAD中(CALL)指令的使用相同。“CALL”指令相当于LAD编程语言中的CALL_FB、CALL_FC、CALL_SFB、CALL_SFC指令,“CALL”指令的使用参考示例程序如下。
①函数的调用。函数调用的固定格式为CALL FCX,X为函数块。
例如函数FC6的调用,FC6带有形参,符号“:”左边为形参,右边为赋的实参,如果形参不赋值,程序调用报错。
CALL FC6
形参 实参
NO OF TOOL: =MW100
TIME OUT :=S5T#12 S
FOUND :=Q 0.1
ERROR :=Q 100.0
②系统函数的调用。系统函数调用的固定格式为CALL SFCX,X为系统函数号。
例如系统函数SFC43的调用,不带有形参。
CALL SFC43 //SFC43实现重新触发看门狗定时器功能
系统函数如果带有形参,与函数的调用相同,必须赋值,否则程序调用报错。
③函数块的调用。函数块调用的固定格式为CALL FBX,DB Y,X为函数号,Y为背景数据块号,函数块与背景数据块使用符号“,”隔离。
例如函数块FB99的调用,背景数据块为DB1,带有形参,符号“:”左边为形参,右边为赋的实参,由于调用函数块带有背景数据块,形参可以直接赋值,也可以稍后对背景数据块中的变量赋值。多次调用函数块时,必须分配不同的数据块作为背景数据块。
CALL FB99, DB1
形参 实参
MAX_RPM: =#RPM1_MAX
MIN_RPM: =MW2
MAX_POWER: =MW4
MAX_TEMP: =#TEMP1
如果函数块A作为函数块B的形参,在函数块B调用函数块A时,不分配背景数据块,例如函数块FB_A的调用:
CALL #FB_A
IN_1 :=
IN_2 :=
OUT_1 :=
OUT_2 :=
调用函数块B时,分配的背景数据块中包括所有函数A和B的背景参数,如果在函数块B中插入多个函数块作为形参,程序调用是只使用一个数据块作为背景数据块,节省数据块的资源(不能节省CPU的存储区),这样函数块具有多重背景数据块的能力,在函数块创建时可以选择。
④系统函数块的调用
系统函数块调用的固定格式为CALL SFBX,DB Y,X为函数块号,Y为背景数据块号,系统函数块与背景数据块使用符号“,”隔离。
例如函数块SFB4的调用,背景数据块为DB4,带有形参,符号“:”左边为形参,右边为赋的实参,由于调用系统函数块带有背景数据块,形参可以直接赋值,也可以稍后对背景数据块中的变量赋值。多次调用系统函数块时,必须分配不同的数据块作为背景数据块。
CALL SF4, DB4
形参 实参
IN :-I0.1
PT :=T#20s
Q :=M0.0
ET :=MW10
(3)程序结束指令
BE(程序结束)与BEU(程序无条件结束)指令使用方法相同。如果程序执行上述指令,CPU终止当前程序块的扫描,跳回程序块调用处继续扫描其他程序;如果程序结束指令被跳转指令跳过,程序扫描不结束,从跳转的目标点继续扫描。指令的使用示例程序如下:
A I1.0
JC NEXT //如果I1.0为1,程序跳转到NEXT
LIW 4 //如果没有跳转,程序从这里连续扫描
TIW 10
A I6.0
A I6.1
S M12.0
BE //程序结束
NEXT: NOP 0 //跳转执行,程序从这里连续扫描
BEC为有条件程序结束,在BEC指令前,必须加入条件触发,示例程序如下:
A M 1.1
BEC
= M1.2
如果M1.1为1,程序结束;如果M1.1为0,程序继续运行。与BE、BEU指令不同,BEC指令触发条件没有满足,置RLO位为1,所以Ml.l为0时,M1.2为1。
湖南西门子S7-1500PLC模块代理(优势价格)