网站首页 > 技术文章 正文
2.2.1 转换指令
(1) BCD转换
将BIN(2进制数)转换成BCD(10进制数)后传送的指令,PLC的运算是按照BIN(2进制)数据进行处理的,在带BCD译码的7段码显示器中显示数值时,可使用本指令。在计算机中都是2进制来保存数据,因此要把一个10进制数据转换成2进制,才能保存在计算机中。
【BCD指令】--将S·的BIN(2进制)数据转换成BCD(10进制)数据后传送到D·中。
1、BCD指令格式---如图2-17所示:
- 设定数据---如表2-5所示:
表2-5 BCD指令操作内容
操作数种类 | 内容 | 数据类型 |
S· | 保存转换源(2进制)数据的字软元件编号 | BIN 16/32位 |
D· | 转换目标(10进制数)的软元件编号 | BIN 16/32位 |
S·的数据。可以转换成K0~K999的BCD(10进制数),如图2-18所示:
(2) BIN转换
将BCD(10进制数)转换成BIN(2进制数)后传送的指令,将数字式开关之类以BCD(10进制数)设定的数值转换成PLC运算中可以处理的BIN(2进制数)数据后读取的情况下,可使用本指令。
【BIN指令】--将S·的BIN(10进制)数据转换成BCD(2进制)数据后传送到D·中。
1、指令格式---如图2-19所示:
- 设定数据---如表2-6所示:
表2-6 BIN指令操作内容
操作数种类 | 内容 | 数据类型 |
S· | 保存转换源(10进制)数据的字软元件编号 | BIN 16/32位 |
D· | 转换目标(2进制数)的软元件编号 | BIN 16/32位 |
功能和动作说明
16位运算(BIN,BINP)
S·的数据。可以转换成0~999的BCD(10进制数)。
S·和D·指定位数的时候,参考下图。
程序举例
1、数字式开关1位数的情况,也可以使用MOV指令,如图2-21所示:
2、数字式开关2位数以上、4位数以下的情况,如图2-22所示:
(3)整数转浮点数FLT
将BIN整数值装换成2进制浮点数(实数)指令,在涉及到浮点数运算的场合,一些存放了整数数值的寄存器要参与到运算中,首先需要转换本身的数据类型,以达到与同类型数据进行运算与比较的要求。需要注意的是,由于在各2进制浮点数(实数)运算指令中,指定的K、H的值会自动转换成2进制浮点数,所以不需要使用FLT指令进行转换。
【FLT指令】--将浮点数转换成整数
- FLT指令格式---如图2-23所示:
- 设定数据---如表2-7所示:
表2-7 FLT指令操作内容
操作数种类 | 内容 | 数据类型 |
S· | 保存BIN整数值的数据寄存器编号 | BIN 16/32位 |
D· | 保存2进制浮点数(实数)的数据寄存器编号 | BIN 16/32位 |
INT指令功能和动作说明
1、32位运算DINT[S·+1,S·]的浮点数转换成整数后,传送到[D·]中。如图2-24所示:
2、32位运算DINT,DINTP将[S·+1,S·]的浮点数转换成整数后,传送到[D·+1,D·]中。如图2-25所示:
FLT指令功能和动作说明
16位运算(FLT,FLTP) 将S·的整数转换成浮点数(实数)后,传送到[D·+1,D·]中。如图2-26所示:
32位运算(DFLT,DFLTP)将[S·+1,S·]的BIN整数转换成2进制浮点数(实数)后,传送到[D·+1,D·]中。如图2-27所示:
- 上一篇: C语言堆栈应用之逆波兰法表达式求值
- 下一篇: 西门子SCL高级语言之数据转换介绍
猜你喜欢
- 2025-03-26 sqlserver数据库中的类型转换(sql类型转化)
- 2025-03-26 Java web后端转Java游戏后端(java转web前端)
- 2025-03-26 c语言数据类型与变量详解(c语言的数据类型及其定义方法)
- 2025-03-26 西门子SCL高级语言之数据转换介绍
- 2025-03-26 C语言堆栈应用之逆波兰法表达式求值
- 2025-03-26 C#中实现byte数组与其他数据类型之间相互转换的通用方法
- 2025-03-26 6.4 数据类型转换(数据类型转换的规则是什么)
- 2025-03-26 Python常见数据类型转换(python数据类型转换规则)
- 2025-03-26 三菱PLC中常见的数据类型转换(三菱plc转换后再怎么编辑)
- 2025-03-26 【C编程问题集中营】在不同编译器下float强转为无符号int的表现
- 最近发表
- 标签列表
-
- cmd/c (57)
- c++中::是什么意思 (57)
- sqlset (59)
- ps可以打开pdf格式吗 (58)
- phprequire_once (61)
- localstorage.removeitem (74)
- routermode (59)
- vector线程安全吗 (70)
- & (66)
- java (73)
- org.redisson (64)
- log.warn (60)
- cannotinstantiatethetype (62)
- js数组插入 (83)
- resttemplateokhttp (59)
- gormwherein (64)
- linux删除一个文件夹 (65)
- mac安装java (72)
- reader.onload (61)
- outofmemoryerror是什么意思 (64)
- flask文件上传 (63)
- eacces (67)
- 查看mysql是否启动 (70)
- java是值传递还是引用传递 (58)
- 无效的列索引 (74)