广西梧州中国西门子一级供货商
数字指令
在讨论数字指令前先了解一下各种数据格式,关于二进制、十进制及其他数的表示方法,在其他地方都有介绍,这里就不再重复。
一、数据格式(16位):数据类型INT是整数(16位),其中符号(位15)表示是正数或是负数(“0"=正数,“1"=负数),16位整数的数值范围是-32768~+32767。在二进制格式中,整数的负数形式用正数的二进制补码表示。(二进制补码利用取反加1得到)负数的位格式,对零的位置加权求和,再加1,在前面放一个负号。
BCD码:十进制的每一位用四个二进制数表示,因为*大为9,需要四位二进制才能表示出来(十进制的9=1001二进制),要注意,从0~9的十进制数的BCD码表示与二进制数表示相同,但BCD码一般用作显示,并非二进制。上面的INT(整数)主要是用来运算。
如BCD码W#16#296,在CPU中表现为0000,0010,1001,0110(直接为+,2,9,6=+296);而整数+296则表示为0000,0001,0010,1000(即28+25+23=296),再例如整数-413表示为1111,1110,0110,0011(因为是负数,用补码,取反加1,上面的二进制数=-(28+27+24+23+22+1)=“-413",而在BCD码该数(W#16#F413)则可以简单的表示为1111,0100,0001,0011。
二、数据格式(32位):DINT类型的数据——带符号位的32-位整数,定义为“双整数"或“长整数",它的表示方法及范围是:L#-2147483648~L#+2147483647;还有一个是实数型REAL型(也叫浮点数),是1.175495*10-38~3402823*1038之间,实数的通用格式为(Sign)*(1.f)*(2e-127),其中Sign为符号位第31位(即*高位),低位的0~22位为f=底数位,23~30为e=指数。STEP7中的实数是按照IEEE标准表示的。
数据的装入和传递:MOVE(LAD/FBD)或L和T(STL):如果输入EN有效,输入“IN"处的值拷贝到输出“OUT"。装载和传递指令的执行与RLO无关,数据通过累加器交换,装载指令把右边源地址的值写到累加器1(不够32位用0补齐),传递指令拷贝累加器中一些或所有内容到的目的地址。如先装载L+5 / L L#523312 / L B#16#EF(分别为装载一个整数+5/一个双整数523312/一个十六进制数EF)到第一累加器(ACCU1),再传输到目的地,如TMB5等。累加器是CPU中的辅助存储器,它们用于不同地址之间的数据交换、比较和数学运算操作。S7-300有两个32位的累加器,S7-400有四个32位的累加器。在装载过程中,ACCU1中的值先移入ACCU 2,在新值写入前先清零,在把要装入的值写入ACCU 1,传递时则从ACCU1中读出。装载和传递指令可以32位中的一个字节或是字及双字,如果仅传递一个字节,只使用右边的8位。在LAD/FBD中,我们可以使用MOVE的允许输入(EN)把装载和传递操作和RLO联系起来,在STL中,则总是执行装载和传递操作,而和RLO无关,我们可以利用条件跳转指令来执行和RLO有关的装入和传递功能。
定时器:STEP7中,CPU为定时器保留了一个特殊存储器,这个区专门为每个定时器地址保留一个16位字。定时器的位0~9包含用二进制表示的时间值,12、13位为时间基准——0表示10ms,1表示100ms,2=1秒,3=10秒,时间基准定义的是一个单位代表的时间间隔。时间值可以直接用常数来表示(此时时间基准自动由系统自动分配),例如S5T#100ms,S5T#2h2m2s20ms。
S5定时器格式:时间的可以如上述所说直接输入固定的时间常数,或由操作人员用拨轮按扭改变或和存储器字或数据字中的时间值有关的过程和配方。在使用中可以用L命令(读出)定时器BI输出端的地址(包含10位二进制数表示的时间值,不带时间基准),如LT5;也可以用LC命令读出定时器BCD端的地址(3位BCD数表示的时间值和12、13位的时间基准)。具体介绍几种常用的定时器:下面只介绍功能,具体符号可以在元件表中找。
接通延时(SD)定时器:当定时器的“S"输入端的RLO从0变到1时,定时器启动。只要输入S=1,定时器起作用,当到达的TV值(预设值)时定时器启动(输出Q=1),该定位器还有一个复位端R端,当等于1时,就清除定时值并且复位Q输出。当前时间可以在BI输出端以二进制数读出,在BCD端以BCD码形式读出,当前时间值是TV的初始值减定时器启动以来的经过时间。
带保持接通延时定时器(SS):与上面SD定时器基本一致,不同的就是具有保持功能,也就是说:一旦S输入端的RLO从0变到1,定时器便启动,定时过程中出现输入S端=0,定时器仍继续记时。但有一点,在保持过程中,如果S输入端从0变1,则定时器重新开始。
关断延时定时器(SF):从某些方面说,和上面提到的SD接通延时定时器状态正好当定时器的S输入端的RLO从“1"变到“0"时,定时器启动,输出信号Q=0,其他功能和输出与SD一样。个人理解,是否SD接通延时定时器,较多的用于正逻辑,而SF更多的用于事故安全型(有时也叫反逻辑,就是在正常的工况中,输入输出都为1或是带电情况)中。
脉冲(SP):这个比较好理解,当“S"输入端从0变到1时,启动定时器,输出Q=1(*多一个脉冲。输出Q复位的情况为:定时器时间到或启动信号从1变到0或复位输入R信号=1。