Plc的进制转换器题目


PLC 中数值制式转换的原理及编程
在 PLC 编程中,对于一个整数,它的二进制或 16 进制或 10 进制的数值形式 会自动转换,不需人为干预。可是将一个整数转换为 BCD 码或转换为 AICII 码, 就不能自动转换,有的 PLC 有这样的转换指令,如 S7-200,我们需要时,直接 调用对应的转换指令就可以了。 可是有的 PLC 没有这方面的转换指令,如需要这 种数值制式转换,就得自己编写转换程序。要想编出转换程序,应必须先了解要 转换的这二种数值制式之间的数学关系,只有了解了才能编出合理的转换程序。 下面我们分别介绍几种数制转换的依据及编程。 一、16 进制数转换为 BCD 码的数学依据及编程:

BCD 码是以 4 位二进制数表示一位十进制数的一种数制形式,它源于电子线 路的计数器,该计数器是由 4 位二进制计数器组成,4 位二进制计数器共有 16 种输出状态:0000、0001、0010、,由高位向低位各位权依次代表 为 8、4、2、1,这 4 位数之和表示一位 16 进制数或一位 10 进制数。用这 16 种 状态表示一个数的称之为二进制(或称 16 进制)计数器,只用这 16 种状态的前 10 种状态表示一个数的计数器,称之为 10 进制计数器,这十进制编码为 0000、 0001、、1001,这种每 4 位二进制数代表一位 10 进制数的编码称 之为 8421 码,即 BCD 码。个位上的 4 位有效数(1)分别代表 10 进制数的 8、4、 2、1,十位上的 4 位有效数(1)分别代表 10 进制数的 80、40、20、10,百位 上的 4 位有效数(1)分别代表 10 进制数的 800、400、200、100,千位上的 4 位有效数(1)分别代表 10 进制数的 8000、4000、2000、1000?? 一个字存储器有 16 个位,可记录 4 位 BCD 码,一个字记录最大的 BCD 码为 9999。即:01_1001。 了解了这些就可以进行将整数转换为 BCD 码, 或将 BCD 码转换为整数的编程: (一)整数转换为


在 PLC 里,整数通常是以 16 进制(即 2 进制)数的形式存放在存储器内,将整数转换 为 BCD 码编程思路是这样:将原整数存放在 M1 存储器里,M2 为 BCD 码存放区,先将 M2 清 0,如最大整数<10000,则 M2 选用一个字存储器就够,计算过程是:先判断 M1 是 否大于 10 进数 8000 (转换 16 进制数为 1F40) 如大于, M1 值 - 1F40, , 用 将差-->M1, M2 加 1 ,如小于,不作减 8000 运算,接着将 M2 左移一位,再判断 M1 是否大于 10 进

下面使用 S7-200 编写的整数转换为 BCD 码的梯形图,供你参考。

本程序是将 16 进制数 270F 送入 VW10 进行 BCD 码转换, 转换完毕, 其结 果放入 VW30 里,在运行处于监视状态下,看网络 6,就可看到 VW30=9999. (二)、BCD 码转换为整数(16 进制数)编程 转换构思:以 4 位 BCD 码为例,它占一个字(16 个位),千位上的 4 为分别 代表十进制数的 8000、4000、2000、1000,而每位上的数字只能为 0 或 1 二种, 百位、十位及个位都与之相似,我们就从千位数的最高位开始判断,如其值=1, 说明此数含有 8000,将 8000 的 16 进制数值(1F40)加在转换为 16 进制数的存 储区里(运算前该区清 0),如其值=0,说明此数不含有 8000,就不进行加 8000 的运算,将 BCD 码存储器左移一位,此时再判断千位上的最高位,如=1,已不是 8000 而变为 4000,即将 4000 的 16 进制数加在 16 进制数的存储区里,如=0,不 加,将 BCD 码存储器再左移一位,进行 2000 位数的判断??,其编程如下:

BCD 码转换为 16 进制数与 16 进制数转换为 BCD 码,二者互为反运算,编程 也极为相似,这里就不做过多说明,仔细看编程注解就可以明白。本程序输入的 BCD 码为 3000,放在 VW10 里,转换为 16 进制数放在 VW30,监视 VW30 ,其运算 结果为 16 进制数 16#BB8。 二、BCD 码转换为 AICII 码与 ASCII 码转换为 BCD 码的数学依据及编程 (一)、BCD 码转换为 AICII 码的编程思路及编程 一般串口通讯传递数据均用 ASCII 码, ASCII 码表示一位 10 进制的数 (0~9) 占用一个字节, 其高 4 位用 “3” 表示, 4 位用 BCD 码表示, 低 如数字 5 的 ASCII 码为:“35”即:。因此,若将一个整数转换为 ASCII 码,必须先将 该整数转换为 BCD 码,再由 BCD 下面的梯形图就是用 S7-300 编写的将 4 为 BCD 码 1234 转换为 ASCII 码 的程序。供大家参考,如有不清楚的地方可以提出,本人可以给与解答。

(二)、ASCII 码转换为 BCD 码的数学依据及编程 由串口通讯传递来的数据是 ASCII, 需将 ASCII 码转换为 BCD 码, 才可用 以显示,转换为整数才能用于运算。下面的程序就是将 ASCII 码转换为 BCD 码, 再由 BCD 码转换为整数的梯形图,供大家分析参考。

三、二进制数与格雷码相互转换的数学依据及编程

(一)、格雷码转换为二进制码的逻辑运算关系

根据格雷码转换为二进制码的逻辑关系,用 S7-200 编写的梯形图。见下图:

说明:梯形图中 1、MW0 为格雷码存数区,本图是置入格雷码值为“”,转换后的 格雷码为“”。在实际应用时,可改为将你要转换的格雷码送入 MW0 就可以了。 2、MW2 为二进制数存数区,即转换后的二进制数存入此区。 3、I1.0 为手控转换按钮,是为试验用的,T101 断电延时定时器是为防按 钮颤抖用的。实际应用时可不用,选用内部的一“位信号”来控制程序运行就可以 了。

4、试验此程序,你可先将要转换的格雷码写入 MW0,存盘下载,运行时, 监视程序最后一条,按下按钮(I1.0),按钮抬起时,MW2 的数值就是转换后的 二进制数值。 (二)、用二进制码转换为格雷码的思路及编程 前面用 S7-200 编写的格雷码转换为二进制码的梯形图, 现在再用二进制码 转换为格雷码的关系式, 编写了“用 S7-200 编写的二进制码转换为格雷码的梯形 图”,供大家参考,此程序是经过上机验证的,好用。

编程说明: 二进制数转换为格雷码的转换原则是:将二进制数的最高位数 “1”,直接送入格雷码数的最高位,将二进制数的次高位数与最高位数相异或, 送入格雷码数的次高位, 再将二进制数的次高位数与次次高位数相异或,送入格 雷码数的次次高位。。。直到二进制数的次低位数与最低位数相异或,送入格雷 码数的最低位为止。 在梯形图中 1、MW0 为二进制存数区,本图是置入二进制数值为“16#D3”,转换后的格雷 码为“16#BA”。在实际应用时,此条可改为将你要转换的二进制数存数区(比如 VW100)送入 MW0 就可以了。 2、MW2 为格雷码数存数区,即转换后的格雷码存入此区。

3、I1.0 为手控转换按钮,是为试验用的,T101 断电延时定时器是为防按钮 颤抖用的。 实际应用时可不用, 选用内部的一“位信号”来控制程序运行就可以了。 4、试验此程序,你可先将要转换的二进制数写入 MW0,存盘下载,运行时, 监视程序最后一条,按下按钮(I1.0),按钮抬起时,MW2 的数值就是转换后的 格雷码数值。

}

可选中1个或多个下面的关键词,搜索相关资料。也可直接点“搜索资料”搜索整个问题。

10进制:逢10+1,如1~9,再加1则变为10,

32进制同理,不过计算机编程中倒没用过32进制。

一般的,常见数字型变量当然是10进制了;16进制和32进制用的不多啊。

换算方法是10进制与2进制换算,2进制与16,32进制换算。

方法是除二取余和乘二取整。你可以自己搜索一下。这是数电、编程之类最基本的问题了。

程序里用10进制还是16进制,是看你的数值关联。

如果自己用,习惯上都习惯10进制,如100,西门子表现形式是10#100,三菱为K100;又些只能用16进制表示的,如字符,ASCII码,如100,西门子表现形式是16#64,三菱为H64.

plc里暂时没有32进制。PLC不是计算机

}

扫一扫,免费发送至微信

请用微信扫描下方二维码

扫码后点击" 关注 ", 即刻收到本条消息

电工PLC培训多长时间

扫描上方二维码收藏到手机

- - - - 云南省昆明市盘龙区昙华路485号

温馨提示:本信息为网友自行发布,在您核实信息前请勿支付任何形式的费用,以免上当受骗。

    PLC组成与工作原理,输入输出布线,二进制、十进制BCD码转换。PLC选型,PLC编程,定时器,计数器,红外线接近开关的应用。三菱、欧姆龙、西门子、PLC编程软件异同编程操作。PLC基本指令及应用,交通信号灯,流水灯,电动机星三角形控制,自动往返控制,双向启动反接电源制动控制,多台电动机顺序启动,逆序停止。触摸屏(人机界面)控制画面的制作,按钮组态。变频器应用与控制;变频器的使用选型;变频器正反转控制;变频器的多速运行。

}

我要回帖

更多关于 进制转换器 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信