电动机功率 | 4kW | 外形尺寸 | 3mm |
---|---|---|---|
应用领域 | 环保,食品/农产品,地矿,包装/造纸/印刷,纺织/印染 | 重量 | 6kg |
西门子S7-1200 控制器是我们新推出产品的核心,可实现简单却高度精确的自动化任务。西门子S7-1200 控制器实现了模块化和紧凑型设计,功能强大、投资安全并且*适合各种应用。可扩展性强、灵活度高的设计,可实现标准工业通信的通信接口以及一整套强大的集成技术功能,使该控制器成为完整、全面的自动化解决方案的重要组成部分。
![]() |
参考价 | ¥433 |
订货量 | 1 |
更新时间:2019-06-18 12:53:04浏览次数:281
联系我们时请说明是化工仪器网上看到的信息,谢谢!
西门子S7-1200PLC模块河南代理商
西门子S7-300/400的有符号数右移指令
移位指令将累加器1的低字或累加器1的全部内容左移或右移若干位(见表3-16)。
有符号数(整数或双整数)右移后空出来的位填以符号位对应的二进制数,正数的符号位为0,负数的符号位为1。移位指令将状态字的CC0清零,后移出的位被装入状态位CC1。
表3-16 移位指令
图3-99中的整数右移指令SHR_I将MW40中的16位有符号整数右移4位。-8000右移4位相当于除以24,移位后的数为-500。从图3-100中的变量表可以看出,右移后空出来的位用符号位1填充。移位位数N为十六进制的字,N如果大于16,原有的数据被全部移出去了,MW42的各位均为符号位。
图3-99 有符号整数右移指令
图3-100 变量表
图3-99的右边是移位指令对应的语句表程序,被移位的数在累加器1中,移位位数在累加器2中,移位位数的允许值为0~255,移位位数(常数)也可以在移位指令中。如果移位位数等于0,移位指令被当作NOP(空操作)指令来处理。
求反码与求补码指令如表3-15和图3-97所示。整数求反码(取反)指令INVI将累加器1低字的16位整数逐位取反,即各位二进制数由0变为1,由1变为0(见图3-98),运算结果在累加器1的低字。双整数求反码指令INVD将累加器1中的双整数逐位取反,结果在累加器1。
表3-15 求反码与求补码指令
语句表指令 | 梯形图指令 | 描 述 |
INVI | INV_I | 求累加器1低字的16位整数的反码 |
INVD | INV_DI | 求累加器1中双整数的反码 |
NEGI | NEG_I | 求累加器1低字的16位整数的补码 |
NEGD | NEG_DI | 求累加器1中双整数的补码 |
NEGR | NEG_R | 将累加器1中的浮点数的符号位取反 |
图3-97 求反码指令
图3-98 变量表
整数求补码指令NEGI将累加器1低字的整数逐位取反后再加1,运算结果仍在累加器1的低字。双整数求补码指令NEGD将累加器1的双整数逐位取反后再加1,运算结果仍在累加器1。求补码相当于求一个数的相反数,即将该数乘以-1。
浮点数取反指令NEGR将累加器1的浮点数的符号位(第31位)取反,运算结果仍在累加器1。下面的例子求双整数MD20的补码,然后传送到MD30:
L MD 20 //将32位双整数装入累加器1
NEGD //求补码
T MD 30 //运算结果传送到MD30
TR指令将累加器1中的32位双整数转换为32位IEEE浮点数(实数),结果仍在累加器1。因为32位双整数的精度比浮点数的高,指令将转换结果四舍五入。
有4条将浮点数转换为双整数的指令(见表3-13),它们将累加器1中的浮点数转换为双整数。因为转换规则不同,得到的结果也不相同,表3-14给出了不同的取整格式的例子。4条指令中用得多的是RND,RND+和RND-很少使用。
表3-14 不同的取整格式举例
因为浮点数的数值范围远远大于32位整数,有的浮点数不能成功地转换为32位整数。如果被转换的浮点数超出了32位整数的表示范围,得不到有效的结果,状态字中的OV和OS位被置1。例2-1中的压力P(kPa)计算公式为
P=(10000×N)/27648=0.36169×N (3-1)
来自AI模块的PIW320的原始数据Ⅳ为16位整数,首先用I_DI指令将整数转换为双整数(见图3-95),然后用DI_R指令转换为实数(Real),再用实数乘法指令MUL_R完成式(3-1)的运算。后用四舍五入的ROUND指令,将运算结果转换为以kPa为单位的整数。图中的程序在随书光盘的例程“指令应用”中。
图3-95 使用浮点数运算指令的压力计算程序
用仿真软件调试程序时,可将0和27 648分别输入PIW320,观察MD16中的计算结果是否是0和10000 kPa。将0~27648之间的任意数值输入PIW320,观察计算结果是否与计算器计算的相同。
【实例】 将101 in(英寸,浮点数)转换为以cm(厘米)为单位的整数,保存到MW0。
L 101.0 //将浮点数101.0装入累加器1
L 2. 54 //将浮点数2.54装入累加器1,累加器1的内容装入累加器2
*R //101.0乘以2.54,得256. 54 cm
RND //四舍五入转换为整数257
T MW 0
16位格式的BCD码的第0N11位二进制数用来表示3位BCD码(见图3-19),每位的数值范围为2#0000~2#1001,对应于十进制数0~9。第15位二进制数用来表示BCD码的符号,正数为0,负数为1,第12~14位二进制数未用,一般取与符号位相同的数。
图3-94给出了BCD码与整数相互转换的例子。用变量表给MW2输入16 #8123(高位二进制数为1)或16#f123(高4位二进制数均为1),转换的结果均为十进制数-123。
图3-94 BCD码与整数的转换
如果输入的BCD码的某位为无效数据(2#1010~2#1111,对应的十进制数为10~15),将得不到正确的转换结果,会出现“BCDF”错误。如果没有下载编程错误组织块OB121,CPU将进入STOP状态,“BCD转换错误”信息被写入诊断缓冲区。
32位格式的BCD码的第0~27位二进制数用来表示7位BCD码。第31位二进制数是BCD码的符号位,正数为0、负数为1。第28~30位二进制数未用,一般取与符号位相同的数。
ITB指令将累加器1低字的16位整数转换为3位BCD码,结果仍在累加器1的低字,累加器1的高字不变。DTB指令将累加器1的32位双整数转换为7位BCD码,结果仍在累加器1。图3-94中的I_BCD指令将- 456转换为BCD码W#16#f456,二进制数的高4位均为1,表示该数是负数。图的右边是对应的语句表程序。
16位整数的表示范围为-32 768~+32 767,而3位BCD码的表示范围为- 999~+999。如果被转换的整数超出BCD码的允许范围,得不到有效的转换结果,同时状态字的溢出位OV和溢出保持位OS将被置1。在程序中,可以根据OV位判断转换结果是否有效,以免造成进一步的运算错误。
西门子S7-1200PLC模块河南代理商