您现在所在的是:

西门子SIEMENS

回帖:13个,阅读:5406 [上一页] [1] [2] [下一页]
682
467437736
文章数:17
年度积分:50
历史总积分:682
注册时间:2012/12/26
发站内信
发表于:2013/1/17 16:03:00
#0楼
如题,看西门子s7 300 PLC碰到不少的困难,楼主又在这种数据类型上受阻,十分不解,上来向各位前辈请教。
    位的真假、字和浮点数的定义都看了一下,还是很不明白:
    例如不知道整数通过指令转化为双整数,再由双整数转化为浮点数,浮点数除以十,这类转换有什么意义?
又对控制起了什么变化,怎么达到控制的目的?还是楼主把始末都没搞明白?求指教。!!!!
    多谢各位了!!!
682
467437736
文章数:17
年度积分:50
历史总积分:682
注册时间:2012/12/26
发站内信
发表于:2013/1/17 16:05:46
#1楼
在线坐等,希望诸位热心肠。。。。
1783
kachakacha
文章数:736
年度积分:50
历史总积分:1783
注册时间:2006/5/24
发站内信
发表于:2013/1/17 17:06:40
#2楼
例如不知道整数通过指令转化为双整数,再由双整数转化为浮点数,浮点数除以十,这类转换有什么意义?

这仅仅用于从模块读取热电偶或者PT热电阻的温度信号,因为:
  从S7-300模板规范手册来看,西门子温度信号的实际值与其模块的读数的关系是10倍的关系,因此需要除以10。
  为何要转换为浮点数?因为使用整数除以10的话,小数位被丢弃,这样就丢弃了精度,当然,你无所谓10.5度与10度的差异话,可以不用转换为浮点数。

Good Luck~
有问题请在论坛提问……作为CVLSAM的马甲,我亚历山大……
Good Luck~
邮箱是anonymousfa@163.com但是我忘记密码了
682
467437736
文章数:17
年度积分:50
历史总积分:682
注册时间:2012/12/26
发站内信
发表于:2013/1/17 21:50:52
#3楼
多谢了!!!!
[此贴子已经被作者于2013/1/17 21:51:46编辑过]
682
467437736
文章数:17
年度积分:50
历史总积分:682
注册时间:2012/12/26
发站内信
发表于:2013/1/17 21:52:11
#4楼
以下是引用kachakacha2013/1/17 17:06:40的发言:
例如不知道整数通过指令转化为双整数,再由双整数转化为浮点数,浮点数除以十,这类转换有什么意义?

这仅仅用于从模块读取热电偶或者PT热电阻的温度信号,因为:
  从S7-300模板规范手册来看,西门子温度信号的实际值与其模块的读数的关系是10倍的关系,因此需要除以10。
  为何要转换为浮点数?因为使用整数除以10的话,小数位被丢弃,这样就丢弃了精度,当然,你无所谓10.5度与10度的差异话,可以不用转换为浮点数。

Good Luck~
对了,能不能把整数变为双整数这个解释下,要是您有空的话,希望能说细一点,对这一整套体系都不大懂。。。
38116
cvlsam 版主
文章数:12488
年度积分:727
历史总积分:38116
注册时间:2001/12/22
发站内信
2018论坛贡献奖
2017论坛贡献奖
2016论坛贡献奖
2015论坛贡献奖
2013论坛贡献奖
2012论坛贡献奖
2011论坛贡献奖
2011国庆活动
2010论坛杰出贡献奖
发表于:2013/1/18 6:02:55
#5楼
以下是引用4674377362013/1/17 21:52:11的发言:
以下是引用kachakacha2013/1/17 17:06:40的发言:
例如不知道整数通过指令转化为双整数,再由双整数转化为浮点数,浮点数除以十,这类转换有什么意义?

这仅仅用于从模块读取热电偶或者PT热电阻的温度信号,因为:
  从S7-300模板规范手册来看,西门子温度信号的实际值与其模块的读数的关系是10倍的关系,因此需要除以10。
  为何要转换为浮点数?因为使用整数除以10的话,小数位被丢弃,这样就丢弃了精度,当然,你无所谓10.5度与10度的差异话,可以不用转换为浮点数。

Good Luck~
对了,能不能把整数变为双整数这个解释下,要是您有空的话,希望能说细一点,对这一整套体系都不大懂。。。
整数16位,双整数32位,其转换过程为:
首先保留16位整数的最高位,即符号位,并将最高位置0。
然后将16位扩展为32位。
最后根据最高位置0还是置1.

如果你自己扩展的话,那会非常简单,例如MW0扩展为Md0,
1、首先保留MW0的最高位,用字与操作,结果保存在Mw10中。
2、将16位扩展为32位,即将使用移动指令将MW0移入Mw2中。
3、根据最高位置0或者1,将MW10的数据移入Mw0中。
通过以上步骤,当读取Md0的时候就是32位数据,当然,系统的ITD指令不是这样做的,其使用的时地址指针来完成的,实现原理相同。

Good Luck~
1395
ic超市
文章数:727
年度积分:50
历史总积分:1395
注册时间:2013/1/14
发站内信
发表于:2013/1/18 11:51:11
#6楼
希望得到比较正确的解释!表情
匿名用户
文章数:N/A
年度积分:0
历史总积分:0
注册时间:2013/1/7
发站内信
发表于:2013/1/21 10:14:21
#7楼
该用户被锁定,回复内容不予显示!
4000
emil128
文章数:17
年度积分:50
历史总积分:4000
注册时间:2005/5/28
发站内信
发表于:2013/1/21 11:03:01
#8楼
以下是引用cvlsam2013/1/18 6:02:55的发言:
以下是引用4674377362013/1/17 21:52:11的发言:
以下是引用kachakacha2013/1/17 17:06:40的发言:
例如不知道整数通过指令转化为双整数,再由双整数转化为浮点数,浮点数除以十,这类转换有什么意义?

这仅仅用于从模块读取热电偶或者PT热电阻的温度信号,因为:
  从S7-300模板规范手册来看,西门子温度信号的实际值与其模块的读数的关系是10倍的关系,因此需要除以10。
  为何要转换为浮点数?因为使用整数除以10的话,小数位被丢弃,这样就丢弃了精度,当然,你无所谓10.5度与10度的差异话,可以不用转换为浮点数。

Good Luck~
对了,能不能把整数变为双整数这个解释下,要是您有空的话,希望能说细一点,对这一整套体系都不大懂。。。
整数16位,双整数32位,其转换过程为:
首先保留16位整数的最高位,即符号位,并将最高位置0。
然后将16位扩展为32位。
最后根据最高位置0还是置1.

如果你自己扩展的话,那会非常简单,例如MW0扩展为Md0,
1、首先保留MW0的最高位,用字与操作,结果保存在Mw10中。
2、将16位扩展为32位,即将使用移动指令将MW0移入Mw2中。
3、根据最高位置0或者1,将MW10的数据移入Mw0中。
通过以上步骤,当读取Md0的时候就是32位数据,当然,系统的ITD指令不是这样做的,其使用的时地址指针来完成的,实现原理相同。

Good Luck~
cvlsam大,这次可说错了。
整型转长整型很简单,原来的整型数放在低字,高字补与符号位相同的16个位就可以了。
正数补16个0,负数补16个1.
3333
xiangfengcba
文章数:1700
年度积分:50
历史总积分:3333
注册时间:2005/9/30
发站内信
发表于:2013/1/27 13:37:46
#9楼
例如不知道整数通过指令转化为双整数,再由双整数转化为浮点数,浮点数除以十,这类转换有什么意义?

这仅仅用于从模块读取热电偶或者PT热电阻的温度信号,因为:
 从S7-300模板规范手册来看,西门子温度信号的实际值与其模块的读数的关系是10倍的关系,因此需要除以10。
 为何要转换为浮点数?因为使用整数除以10的话,小数位被丢弃,这样就丢弃了精度,当然,你无所谓10.5度与10度的差异话,可以不用转换为浮点数。

关于我们 | 联系我们 | 广告服务 | 本站动态 | 友情链接 | 法律声明 | 非法和不良信息举报

工控网客服热线:0755-86369299
版权所有 工控网 Copyright©2025 Gkong.com, All Rights Reserved

109.2007