九,什么是浮点数?
「定点」指的是约定小数点位置固定不变。那浮点数的「浮点」就是指,其小数点的位置是可以是漂浮不定的。
浮点数是采用科学计数法的方式来表示的,例如十进制小数 6.187,用科学计数法表示,可以有多种方式:
6.187 = 6.187* 10^0
6.187= 61.87 * 10^-1
6.187 = 618.7* 10^-2
用这种科学计数法的方式表示小数时,小数点的位置就变得漂浮不定,这就是浮点数由来。
十,BCD16.是16位的BCD,BCD码是一种数据编码方式,是用二进制数字表示十进制数字的一种方式。目的在于人看上去简单容易理解。BCD码在PLC中使用也是为了让人容易看懂数据,比如一个时间在PLC内存储的时候就是BCD码的方式一个字节就可以表示出小时,一个字节表示分钟,一个字节表示秒钟。
BCD(Binary-Coded Decimal):二进制编码的十进制数,用4位二进制表示1位十进制数(0-9) 。
- 每4位有效范围:0000~1001(对应0~9)
- 1010~1111 为无效码,PLC中会报错
- 本质:逢十进一,不是纯二进制运算
示例
- 十进制 5 → BCD:0101
- 十进制 12 → BCD:0001 0010
- 十进制 258 → BCD:0010 0101 1000
PLC里的BCD格式(常用)
. BCD16(16位)
- 西门子S7-1200/1500:-999~+999(最高位表符号)
- 三菱/施耐德/西门子200SMART:0~9999(无符号)
. BCD32(32位)
- 西门子:-9999999~+9999999
- 三菱/施耐德:0~99999999
PLC常用转换指令(西门子为例)
- I_BCD:整数 → BCD码
- BCD_I:BCD码 → 整数
- 例: I_BCD MW10, MW12 (把MW10整数转BCD存MW12)
十一,Real转换成INT。小数就没有了
ROUND取整。西门子有点特殊。如果恰好在偶数和奇数之间。小数点前是偶数。就选偶数比如32.5,取整后是32,33.5取整是34
CEIL,浮点数向上取整,有效数就进位
感觉西门子PLC和C语言也差不多。
只能仿真S7-1200系列固件版本4.0或更高版本CPU
real和LReal区别real是32位的浮点数。Lreal是64位的浮点数。
truncation
截尾取整。位数去除。也可以填写变量(浮点数)。
顺便看了下,S7-1200有PID功能。在工艺里边。其他的估计都有这个功能。
SCALE_X,,意思是标定翻译是缩放
VALUE
值范围-37763到37768。
1200和300系列PLC,对应的都是0-27648
VALUE是0.0到1.0范围浮点数
INT数据范围是:0-27648
NORM,标准化,标准