合信论坛

快捷导航
查看: 5344|回复: 0

如何将双整数 (DOUBLE INTEGER) 转换为 BCD 码 (或者反之) ?

[复制链接]

158

主题

251

帖子

3855

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
3855
发表于 2022-7-8 11:42:53 | 显示全部楼层 |阅读模式
在 MagicWorkPLC 中,可以使用 I_BCD 和 BCD_I 指令将16位整数 (INTEGER) 转换为 BCD 码或者相反(BCD->INT)。使用下面提供的库,可以将32位整数 (DOUBLE INTEGER) 转换为 BCD 码或者相反 (BCD->DOUBLE INTEGER)。
“BCD” 库的描述
“BCD” 库包含了功能块 DI_BCD ( 双整数到 BCD 码的转换) 和 BCD_DI ( BCD 码到双整数的转换) 。

1.png
图.1

双整数转换为 BCD 码 (DI_BCD)
DI_BCD 功能将32 位正整数,0到99,999,999之间的数转换为二进制编码的十进制数(BCD)。


图.2

如果输入负数或大于99,999,999的数,ENO 使能输出位被复位并且转换结果无效。
参数
数据类型
操作数
描述
EN
[BOOL]
E, A, M, L, V
输入使能
ENO
[BOOL]
E, A, M, L, V
输出使能
IN
[DWORD]
VD, ED, AD, MD, SD, SMD, LD, T, Z, AED, AC, HC, Constant, *VD, *AC, *LD
要转为 BCD 码的32 位整数值
OUT
[DWORD]
VD, ED, AD, MD, SD, SMD, LD, T, Z, AC, *VD, *LD, *AC
BCD 码
Table 01
BCD 码转换为双整数 (BCD_DI)
BCD_DI 功能将正的32 位 BCD 码,从 0 到 16#99999999之间的数转换为 32 位双整数。


图.3

16进制字母 (A-F) 不会被转换。这时 ENO 使能输出位被复位并且转换结果无效。
Parameter
Data type
Operands
Description
EN
[BOOL]
E, A, M, L, V
Enable input
ENO
[BOOL]
E, A, M, L, V
Enable output
IN
[DWORD]
VD, ED, AD, MD, SD, SMD, LD, T, Z, AED, AC, HC, Constant, *VD, *AC, *LD
BCD number
OUT
[DWORD]
VD, ED, AD, MD, SD, SMD, LD, T, Z, AC, *VD, *LD, *AC
Integer value (32-bit) of the BCD number
Table 02

BCD.ctmwl

10.4 KB, 下载次数: 2219

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

客服热线
400-700-4858 周一至周五:09:00 - 18:00
深圳市南山区打石一路深圳国际创新谷6栋A座9层

深圳市合信自动化技术有限公司(简称“合信技术”)成立于2003年,高新技术企业,专注于工业自动化产品的研发、生产、销售和技术服务,依靠高质量、高性能的自动化控制产品与方案为客户创造最大价值,立志于成为全球领先的工业自动化解决方案供应商。

Archiver|手机版|小黑屋|COTRUST Inc. ( 粤ICP备13051915号 )

GMT+8, 2025-5-9 16:15 , Processed in 0.164432 second(s), 25 queries .

快速回复 返回顶部 返回列表