苏州实操派科技有限公司官网-实操派教育科技,汇川技术PLC培训,实操派PLC培训,苏州PLC培训机构

分享:进制转换

[复制链接]
10 237

附件下载,需登录可以查看贴内更多信息

您需要 登录 才可以下载或查看,没有账号?立即注册

x
plc常用编程进制一般有:二进制、八进制、十进制、十六进制。不同的进制在不同的场合应用较多,例如:
八进制,一般用于plc的IO模块,一般都是说8个点16个点,八进八出。二进制,多用于字位转换,流程状态的判断,左移右移等。
十六进制,多用于地址规划,对象字典,通讯地址等。

总结一下进制之间相互转换的方式,顺便帮各位回顾一下,先从简单的十进制转n进制开始,然后是n进制转十进制,道理基本都是相通的。

一、n进制与十进制

1.n进制转十进制
从右往左,按照顺序取每一位的数值 * n进制的x次方,再进行求和,结果就是十进制。例如:

2#1101
10#: 1*2^0 + 0*2^1 + 1*2^2 + 1^2^3=13

8#2015
10#: 5*8^0 + 1*8^1 + 0*8^2 + 2*8^3=1037

16#3E2
10#: 2*16^0 + 14(E)*16^1 + 3*16^2= 994

2.十进制转n进制
反过来相除,再取每一次的余数从右往左排列,组合起来就是对应的进制。例如

10#28
2#:28/2=14余0,14/2=7余0,7/2=3余1,3/2=1余1,1mod2=1,反向组合余数 。结果 11100
8#:28/8=3余4,3mod8=3,结果 34
16#:28/16=1余12,1mod16=1,结果 1C

二、2进制和8进制、16进制
2#和8#、16#成倍数关系,有着8421和421的特殊用法,转换也比较方便,因为2^3=8,2^4=16。例如

2#1011 0101
8#:从右往左按照3个数进行组合划分,010  110  101 ,分别对应 2 6 5,结果265
16#:从右往左按照4个数进行组合划分,1011 0101 ,分别对应11(B)  5,结果 B5


8#1234
2#:将8#数据每一位拆分为3位进行组合,1对应001  2对应010  3对应011  4对应100,结果 001 010 011 100


16#3FD
2#:将16#数据每一位拆分为4位进行组合,3对应0011  F对应1111  D对应1101,结果 0011 1111 1101


三、应用
进制转换只看数据似乎没什么意思,那么在plc中如何去应用呢?以二进制和十进制的转换为例,字和位的调用转换,其余各位可自行探索。


例如通讯地址是int类型的映射,那么一个int中有16个bit,如何取出这16位的状态呢?
汇川plc内部给出位的访问,通过a.0   a.1的方式,但是不能引入变量循环访问,指针也无法取到位地址,这种方式在数据量少的时候用起来还能接受,如果数据量大,例如我有10个字要做传输通讯,10*16=160个bit,这代码操作起来是很要命的!


下面介绍第二种方式,and判断字位转换
and和or本是状态判断,状态判断只有true和false两种,相当于是2进制的判断,int类型默认10进制,在使用and进行判断的时候,就可以间接将int类型隐式转换为2进制,可对位判断。
例如:
VAR
      iData : int:=13;//对应2进制为 1101
END_VAR
第1位状态获取:= iData  and  2#0001
第2位状态获取:= iData  and  2#0010

第3位状态获取:= iData  and  2#0100第4位状态获取:= iData  and  2#1000
1.png

可以使用更简便的方法来替代2#的数据,使用expt(2,x),即2的x次方,那就可以在for循环中编写了,批量修改数据方便使用。
2.png
3.png


位进行组合成字的方式,对应就是获取状态,然后根据1.1中的方法累加2^x次方,就能实现16个bit组合成int。方法相同不再赘述,各位可自行尝试。

免责声明:内容为网友自行发布或者来自互联网资源或者参考文献,如果侵犯了您的权益,请联系站长 1304546267@qq.com,我们会及时删除侵权内容,感谢您的理解!
回复

使用道具 举报

分享一下我自己写的进制转换程序,写的比较潦草没有考虑资源占用问题,就是任意进制都转成10进制,然后10进制再转任意进制。软件版本1.5.2(SP4F2)不确定是否可以打开。我不知道还有什么方法可以上传功能块或者程序。如果打不开各位指导我一下。
1.png 2.png 3.png 4.png 5.png 6.png 7.png 8.png 进制转换.7z (212.97 KB, 下载次数: 0)
回复

使用道具 举报

午夜屠刀 2022-4-8 23:35:53 | 显示全部楼层
感谢分享
回复

使用道具 举报

枳子甜了 2022-4-9 12:04:07 | 显示全部楼层
感谢分享,孙工,可以写个FB/FC分享下
我看使用16进制字符串也可以转10进制

1.png
回复

使用道具 举报

需要的话我等会发出来,确实写了个
回复

使用道具 举报

hexinisme 2022-4-9 23:43:24 | 显示全部楼层
感谢分享
回复

使用道具 举报

牟尼 2022-4-27 10:56:26 | 显示全部楼层
进制转换
回复

使用道具 举报

韩氏王子韩hl 2022-4-27 11:44:17 | 显示全部楼层
感谢分享
回复

使用道具 举报

ChatGPT机器人06 2022-6-12 06:09:53 | 显示全部楼层
感谢分享
回复

使用道具 举报

内容详细,感谢分享
回复

使用道具 举报

关键词:进制转换、二进制、八进制、十进制、十六进制、PLC、IO模块、字位转换、地址规划、对象字典、通讯地址、十进制转n进制、n进制转十进制、2进制和8进制、2进制和16进制、应用、字和位的调用转换、and判断字位转换。

文章大纲:
I. 介绍进制转换的重要性
    A. 不同进制在不同场合的应用
II. 进制转换方法
    A. n进制转十进制
        1. 从右往左按顺序取每一位的数值乘以n进制的x次方,求和得到十进制结果
        2. 示例
    B. 十进制转n进制
        1. 反向相除取余数并从右往左排列,组合得到对应进制的数值
        2. 示例
    C. 2进制和8进制、16进制之间的转换
        1. 2进制和8进制的转换
        2. 2进制和16进制的转换
III. 进制转换在PLC中的应用
    A. 字和位的调用转换
    B. 使用and判断字位转换
IV. 总结

正文:

I. 介绍进制转换的重要性
进制转换是计算机科学中非常重要的概念之一。在PLC编程中,不同进制的应用场合有所不同。例如,八进制常用于PLC的IO模块,而二进制多用于字位转换和流程状态的判断。十六进制则常用于地址规划、对象字典和通讯地址等。

II. 进制转换方法
A. n进制转十进制
n进制转换为十进制是比较简单明了的方法。我们从右往左按照顺序取每一位的数值,乘以n进制的x次方,再将结果进行求和,得到十进制数值。
示例:
- 2进制转10进制:2#1101 = 1*2^0 + 0*2^1 + 1*2^2 + 1*2^3 = 13
- 8进制转10进制:8#2015 = 5*8^0 + 1*8^1 + 0*8^2 + 2*8^3 = 1037
- 16进制转10进制:16#3E2 = 2*16^0 + 14(E)*16^1 + 3*16^2 = 994

B. 十进制转n进制
十进制转换为n进制则需要采用反向相除取余数的方法,并将每一次的余数从右往左排列组合,得到对应进制的数值。
示例:
- 10进制转2进制:10#28 = 28/2 = 14余0 -> 14/2 = 7余0 -> 7/2 = 3余1 -> 3/2 = 1余1 -> 1 mod 2 = 1,反向组合余数得到结果11100
- 10进制转8进制:10#28 = 28/8 = 3余4 -> 3 mod 8 = 3,结果34
- 10进制转16进制:10#28 = 28/16 = 1余12 -> 1 mod 16 = 1,结果1C

C. 2进制和8进制、16进制之间的转换
2进制和8进制、16进制之间存在倍数关系,转换较为方便。例如,2的3次方等于8,2的4次方等于16。
- 2进制转8进制:从右往左按照3个数进行组合划分,每组对应一个八进制数值。例如,2#1011 0101 转换为8进制就是265。
- 2进制转16进制:从右往左按照4个数进行组合划分,每组对应一个十六进制数值。例如,2#1011 0101 转换为16进制就是B5。

III. 进制转换在PLC中的应用
进制转换不仅仅只是理论上的知识,它在PLC编程中也有着实际的应用。
A. 字和位的调用转换
在PLC中,字和位的调用方式是不同的。字通常使用a.0、a.1等形式进行访问,但无法通过引入变量循环访问或者使用指针获取位地址。对于数据量较少的情况下,这种方式还能够接受。但如果数据量较大,例如有10个字需要进行传输通讯,那么使用a.0、a.1等方式的代码操作就会变得非常繁琐。
下面介绍一种更好的方法,即使用and判断字位转换。
例如:
VAR
      iData : int := 13; // 对应2进制为1101
END_VAR
第1位状态获取 := iData and 2#0001
第2位状态获取 := iData and 2#0010
第3位状态获取 := iData and 2#0100
第4位状态获取 := iData and 2#1000
通过这种方式,我们可以将int类型隐式转换为2进制,并对位进行判断和操作。

B. 使用and判断字位转换
除了字和位的调用转换外,我们还可以使用and指令进行字位转换。通过and指令的判断,我们可以间接将int类型隐式转换为2进制,从而实现对位的判断。
例如:
VAR
      iData : int := 13; // 对应2进制为1101
END_VAR
第1位状态获取 := iData and 2#0001
第2位状态获取 := iData and 2#0010
第3位状态获取 := iData and 2#0100
第4位状态获取 := iData and 2#1000
通过这种方式,我们可以将int类型隐式转换为2进制,并对位进行判断和操作。

IV. 总结
进制转换是计算机科学中非常重要的概念之一,在PLC编程中也有着广泛的应用。本文介绍了n进制转十进制的方法、十进制转n进制的方法以及2进制和8进制、16进制之间的转换方法。并且介绍了进制转换在PLC中的应用,包括字和位的调用转换以及使用and指令进行字位转换。进制转换的掌握对于PLC编程人员来说是非常重要的技能之一。
                                                                                                                                                                                                                                                 以上内容来自  AI机器人,如需继续对话,则在此回答下“点击回复” 或者 在提问时  “@机器人”!禁止 "黄赌毒及政治敏感",违者封号,严重者 提交 网警公安部门。本站不对内容真实性负责,AI机器人有时候会乱说一通……
回复

使用道具 举报

data/attachment/temp/202212/30/133743h8cd9z14sjs84kaz.png_thumb.jpg 共31章节616课时

【全科班】汇川中型PLC从0到1就业班(Codesys系统化全科班课程-600节+)-汇川PLC教程

朱子文

咨询客服
https://shicaopai-video-files.oss-cn-hangzhou.aliyuncs.com/keke_video_base/image/20240206/VMdEZiqp3BMkbBIlMRRD.png 共9章节44课时

【09-Codesys教程】电子凸轮齿轮从入门到进阶系统化课程-色标跟踪-探针-追剪-飞剪-间歇式工艺-汇川中大型PLC伺服多轴同步运控

朱子文

¥ 699.00
https://shicaopai-video-files.oss-cn-hangzhou.aliyuncs.com/keke_video_base/image/20240217/v39r666Z663eBBGKErRm.png 共30章节630课时

【全科班】汇川技术H5U从0到1就业班(系统化全科班-600节+)

张汉清

咨询客服
https://shicaopai-video-files.oss-cn-hangzhou.aliyuncs.com/keke_video_base/image/20240207/HlL5SWHry9lPVdqC8i59.png 共5章节63课时

【01-Codesys教程】ST文本从0到1,从入门到进阶-汇川中大型PLC教程

朱子文

¥ 499.00
https://shicaopai-video-files.oss-cn-hangzhou.aliyuncs.com/keke_video_base/image/20240227/AMo32PcbJeIMJBT3m8Pu.png 共4章节36课时

03 中大型ST文本结合仿真软件小项目 31节-气缸功能块封装-状态机编程思路-小设备框架

朱子文

¥ 499.00
https://shicaopai-video-files.oss-cn-hangzhou.aliyuncs.com/keke_video_base/image/20240206/Fu5pu34pPcTpu0La443P.png 共6章节52课时

【10-Codesys】包装行业-三伺服枕包机实战项目(4虚轴3实轴耦合+凸轮动态修改+防切工艺+防空工艺+色标探针+挺杆功能+状态机编程+程序框架+指针FIFO)

朱子文

¥ 899.00
https://shicaopai-video-files.oss-cn-hangzhou.aliyuncs.com/keke_video_base/image/20240206/Su1ibr3I77yl78DLBR7D.png 共4章节29课时

【12-Codesys小课】中大型PLC-PID控制器算法从入门到进阶之液位控制系统

朱子文

¥ 699.00
https://shicaopai-video-files.oss-cn-hangzhou.aliyuncs.com/keke_video_base/image/20230603/Cz3hqDmDD8qHfT3MDm4m.png 共3章节30课时

【05-Codesys教程】汇川中大型PLC单轴运动控制教程-汇川PLC教程

朱子文

¥ 399.00
https://shicaopai-video-files.oss-cn-hangzhou.aliyuncs.com/keke_video_base/image/20230603/gXpEpJ8Qb78eD5lDqlnQ.png 共3章节25课时

【06-Codesys教程】汇川中大型PLC运动控制进阶篇(多轴PTP)-编程框架与编程模板实操

朱子文

¥ 499.00
https://shicaopai-video-files.oss-cn-hangzhou.aliyuncs.com/keke_video_base/image/20240206/e39s63ppg54Q2s5H33H9.png 共3章节24课时

【08-codesys教程】汇川中大型codesys教程-多轴运控扩展篇经验分享小知识分享

朱子文

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

本版积分规则

data/attachment/temp/202212/30/133743h8cd9z14sjs84kaz.png_thumb.jpg 共31章节616课时

【全科班】汇川中型PLC从0到1就业班(Codesys系统化全科班课程-600节+)-汇川PLC教程

朱子文

咨询客服
https://shicaopai-video-files.oss-cn-hangzhou.aliyuncs.com/keke_video_base/image/20240206/VMdEZiqp3BMkbBIlMRRD.png 共9章节44课时

【09-Codesys教程】电子凸轮齿轮从入门到进阶系统化课程-色标跟踪-探针-追剪-飞剪-间歇式工艺-汇川中大型PLC伺服多轴同步运控

朱子文

¥ 699.00
https://shicaopai-video-files.oss-cn-hangzhou.aliyuncs.com/keke_video_base/image/20240217/v39r666Z663eBBGKErRm.png 共30章节630课时

【全科班】汇川技术H5U从0到1就业班(系统化全科班-600节+)

张汉清

咨询客服
https://shicaopai-video-files.oss-cn-hangzhou.aliyuncs.com/keke_video_base/image/20240207/HlL5SWHry9lPVdqC8i59.png 共5章节63课时

【01-Codesys教程】ST文本从0到1,从入门到进阶-汇川中大型PLC教程

朱子文

¥ 499.00
https://shicaopai-video-files.oss-cn-hangzhou.aliyuncs.com/keke_video_base/image/20240227/AMo32PcbJeIMJBT3m8Pu.png 共4章节36课时

03 中大型ST文本结合仿真软件小项目 31节-气缸功能块封装-状态机编程思路-小设备框架

朱子文

¥ 499.00
https://shicaopai-video-files.oss-cn-hangzhou.aliyuncs.com/keke_video_base/image/20240206/Fu5pu34pPcTpu0La443P.png 共6章节52课时

【10-Codesys】包装行业-三伺服枕包机实战项目(4虚轴3实轴耦合+凸轮动态修改+防切工艺+防空工艺+色标探针+挺杆功能+状态机编程+程序框架+指针FIFO)

朱子文

¥ 899.00
https://shicaopai-video-files.oss-cn-hangzhou.aliyuncs.com/keke_video_base/image/20240206/Su1ibr3I77yl78DLBR7D.png 共4章节29课时

【12-Codesys小课】中大型PLC-PID控制器算法从入门到进阶之液位控制系统

朱子文

¥ 699.00
https://shicaopai-video-files.oss-cn-hangzhou.aliyuncs.com/keke_video_base/image/20230603/Cz3hqDmDD8qHfT3MDm4m.png 共3章节30课时

【05-Codesys教程】汇川中大型PLC单轴运动控制教程-汇川PLC教程

朱子文

¥ 399.00
https://shicaopai-video-files.oss-cn-hangzhou.aliyuncs.com/keke_video_base/image/20230603/gXpEpJ8Qb78eD5lDqlnQ.png 共3章节25课时

【06-Codesys教程】汇川中大型PLC运动控制进阶篇(多轴PTP)-编程框架与编程模板实操

朱子文

¥ 499.00
https://shicaopai-video-files.oss-cn-hangzhou.aliyuncs.com/keke_video_base/image/20240206/e39s63ppg54Q2s5H33H9.png 共3章节24课时

【08-codesys教程】汇川中大型codesys教程-多轴运控扩展篇经验分享小知识分享

朱子文

¥ 299.00

到"π³ 实操派",学PLC就是快!汇川PLC及Codesys培训

项目实战 手把手教学 微信&电话 15850116008
超600节系统化课程,汇川优秀自动化讲师亲授!学一门Codesys,玩800家PLC仅剩少量名额
点击免费试听

到实操派,学PLC就是快!

扫码领取工控文库VIP

钻石VIP先到先得

服务电话 & 微信:9:00-22:00

15850116008

苏州实操派科技有限公司

公司地址:江苏省苏州市吴中区越溪街道天鹅荡路5号31B13

Copyright © 苏州实操派科技有限公司 2022 到实操派,学PLC就是快!工业自动化业务培训适用人群:成人 ( 苏ICP备2022021576号-3 )

公司地址:江苏省苏州市吴中区越溪街道天鹅荡路5号31B13

返回顶部