西门子上海数控系统中国经销商
的双整数取反后再加1,运算结果仍在累加器1中。
浮点数取反指令NEGR将累加器1中的浮点数的符号位(第31位)取反,运算结果仍在累加器1中。下面的例子将MD20中的双整数求补后传送到MD30度比浮点数的高,指令将转换结果四舍五入。
②浮点数转换为整数 RND(Round)指令将累加器1中的IEEE浮点数转换为32位双整数,结果仍在累加器1中,小数部分被舍去,得到的是*接近的整数(即四舍五入)。如果转换结果刚好在两个相邻的整数之间,则选择偶数为转换结果。
“RND+”指令将累加器1中的浮点数转换为大于等于该浮点数的*小双整数,结果仍在累加器1中。“RND-”指令将累加器1中的浮点数转换为小于等于该浮点数的*大双整数,结果仍在累加器1中。TB指令将累加器1低字中的16位整数转换为加3位BCD码,结果仍在累加器1的低字中,累加器1的高字不变。DTB指令将累加器1中的32位双整数转换为7位BCD码,结果仍在累加器1中。
16位整数的表示范围为-32768~+32768,而3位BCD码的表示范围为-999~+999。如果被转换的整数超出BCD码的允许范围,在累加器1的低字中得不到有效的转换结果,同时状态字中的溢出位(OV)和溢出保持位(OS)将被置1。
在程序中,应根据状态位OV或OS判断转换后累加器1低字中的结果是否有效,以免造成进一步的运算错误。在执行DTB指令时,也有类似问题需要注意。式的定时器当前值,BCD输出端输出BCD码格式的当前时间值和时基。梯形图中的传送指令 在梯形图中,用指令框(BOX)表示某些指令。指令框的输入端均
西门子上海数控系统中国经销商
框的使能输入端EN(Enable),该输入端有能流时,指令框中的提令才能被执行。
如果指令框的EN输入有能流并且执行时无错误,则ENO(Enable Output,使能输出)将能流传递给下一元件。如果执行过程中有错误,能流在出现错误的指令框终止。
定时器中的S、R、Q为BOOL(位)变量,BI和BCD为WORD(字)变量,TV为S5TIME示。此外每一个S5定时器都有功能相同的用线圈形式表示的定时器。
S7 CPU为定时器保留了一片存储区域。每个定时器有一个16位的字和一个二进制位,定时器的字用来存放它当前的定时时间值,定时时基 定时器字的第12位和第13位用于时基(时间基准),时基代码为二进制数00、01、10和11时,对应的时基分别为10ms、100ms、1s和10s。实际的定时时间等于时间值乘以时基值。例如定时器字为W#16#3999时,时基为10s,定时时间为9990s。时基反映了定时器的分辨率,时基越小分辨率越高,可定时的时间越短,时基越大分辨率越低,可定时的时间越长。
(4)接通延时定时器的定时过程 接通延时定时器的线圈通电,定时器被启动,操作系统自动地将累加器低字的内容(定时时间预置值)装入定时器。如果用语句表编程,在定时器启动之前建议用下面两条指令中的一条将定时器的预置值装入累加器:器触点的状态由它的位的状态来决定。用定时器地址(T和定时器
西门子上海数控系统中国经销商
器的时间值,不同的CPU支持32~512个定时器。
(2)定时器字的表示方法 用户使用的定时器字由3位BCD码时间值(0~999)和时基组成,时基是时间基准的简称,时间值以指定的时基为单位。在CPU内部,时址位为1状态时,该触点闭合。
在语句表中,用AN(AND NOT,与非)来表示串联的常闭触点,用ON(OR NOT,或非)来表示并联的常闭触点,触点符号中间的“/”表示常闭,常闭触点对应的地址位为0状态时该触点闭合。
输出指令“=”将RLO写入地址位、输出指令与线圈相对应。驱动线圈的电路接通时,有“能流”流过线圈,RLO=1,对应的地址位为1状态,反之则RLO=0,对应的地址位为0状态。线圈应放在梯形图的*右边。下面是图2-12对应的语句表,其中的L20.0是用来保存运算结果的局域变量,局域变量只能在程序所在的逻辑块中使用。将梯形图转换为语句表时,局域变量L20.0是自动分配的指针可以是字或双字,定时器(T)、计数器(C)、数据块(DB)、功能块(FB)和功能(FC)编号范围小于65535,使用字指针就够了。
其他地址则要使用双字指针,如果要用双字格式的指针访问一个字、字节或双字存储器,必须保证指针的位编号为0,例如P#Q20.0。双字指针区域1。
在用户编写的FB和FC程序中,必须对BR位进行管理,功能块正确执行后,使BR位为1,否则使其为0。使用SAVE指令可将RLO存入BR中,从而达到管理BR位的目的。当FB或FC执行无错误时,使RLO为1,并存入BR;否则在BR中存入0。状态字的9~15位未使用。
(3)数据块寄存器 DB和DI寄存器分别用来保存打开的共享数据