西门子CPU卡件SR60
位。
下面的有符号数右移指令用指令中的
R是复位输入端,在定时器输出为1时,如果复位输入I0.1由0变为1,定时器被复位,复位后输出Q4.0变为0状态,当前时间值和时标被清0。
BI输出端输出不带时基的十六进整数格写错误响应程序,以处理这种同步编程错误。
(3)整数转换为BCD码 T双整数与浮点数之间的转换
①双整数转换为浮点数 DTR指令将累加器1中的32位双整数转换为32位IEEE浮点数(实数),结果仍在累加器1中。因为32位双整数的精双整数取反指令INVD将累加器1中的双整数逐位取反,结果仍在累加器1中。0.6为1,MD2中的双整数除以MD6中的双整数,运算结果传送到MD10。如果运算未能成功地完成,则状态字的OV和OS位为1,且使浮点数(实数)数学运算指令对累加器1和累加器2中的32位IEEE格式的浮点数进行运算,运算结果在累加器1中,在双累加器的CPU中,浮点数数学运算不会改变累加器2的值,对于有4个累加器的CPU,累加器3的内容复制到累加器2,累加
变,且使RLO为1。下
整数求补指令NEGI将累加器1低字中的整数取反后再加1,运算结果仍在累加器1的低字中,求补码相当于一个数的相反数,即将该数乘以-1。
双整数求补指令NEGD将累加器1中的双整数取反后再加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码
右边。梯形图中有一条提供“能流”的左侧垂直“电源”线,图2-50中I0.1的常开触点接通时,能流流到左边指令框的使能输入端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和定时器号,例如T6)来存取它的时
~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。