汇川PLC编程转换指令 #plc编程
汇川PLC编程基础指令之转换指令。
大家好,这节课讲一下数据的转换指令,主要是常用的int、dint和real之间的转换。
首先说一下之前讲的计算,绝大多数是以小数的计算法。如果有整数想跟小数一起去计算该怎么办?需要用到整数转浮点数的指令。整数转浮点数的指令叫什么?叫flt。
flt打了之后可以看到这边是16位的数据转换成浮点数,还看到dfLT,这跟之前用法是一样的,加一个d代表是32位的数据转成浮点数。这里比如flt,然后D0,这时候就是把D0里面的数据转成浮点数之后放到D2、D3里面。因为前面是16位的,后面是32位的数据。
这时候在里面可以写0,结果是0.0,写个100,结果是100.0。这时候虽然值都是100,但是数据已经变成小数了。变成小数之后就可以用之前学过的小数的加减乘除去进行运算。比如DO本来是要跟小数据进行计算的,现在没有办法计算,先把它转成小数。
用比如D1开头的ADDSUB MULdiv加减乘除上节课学的指令就可以进行操作了。如果是32位就是dflt,比如D10、D12,就是把32位的数据。32位数据跟16位数据就不多说了,区别就是它的范围更大一点。比如在这里面可以写到10万,但是上面是写不了这么大的数据了。有小的转大的,就是整数、浮点数转。浮点数转整数。
有没有浮点数转整数?也有。浮点数转整数用什么指令?叫PNTint,把16位的浮点数转成16位的转换。还有个DNT,把浮点数转成32位的整数,比如写个D20,然后D22。
这里面转换,比如写一个浮点数,比如3.2,结果可以看到3。如果写个比如3.5,结果是不是还是3?然后3.8,结果是不是还是3?所以这里注意下,这里的转换并不是四舍五入,因为浮点数转成整数,小数点在后面的数据肯定就没有办法给整数处理,因为整数是不带小数点,所以这里计算会直接把小数部分给去掉,得到整数的结果。
如果想把整数浮点数去进行比如四舍五入转换用什么?还有一个指令,手上还有一个指令叫做RUN,搜索一下这个指令,有一个叫RUN的指令,run的指令是将整数浮点数转为整数,并将小数点后面一位去进行四舍五入,32位的就叫dRUN。
可以来试一下,在这边写一个run,ound,叫浮点数的四舍五入的取整。刚才是什么直接取整?写个D30D32,比如这时候写个3.2,结果是3,但是写一个比如3.5,结果就是4,这时候就是四舍五入,跟刚才上面的就不一样了。
这个就是常见的转换指令,用的更多的应该就是上面这种整数转浮点数,最后就计算结果了。因为浮点数转整数,不管是去尾还是四舍五入,整体的精度都是发生变化的,所以用的相对来比较少一点,可能有些模拟量那些转换会用的比较多一点。
这节内容就到这里了。
PLC梯形图编程很low?我劝你一定要看看这篇
在咱们工控论坛上,潜藏着众多技术资深大咖,讨论起技术来,可从来都没废话。
对于PLC梯形图编程,论坛网友lvpretend有话要说:
论坛上对于编程语言梯形图与结构化文本的争论从来没有停过,有些技术人员认为梯形图是比较LOW的语言,文本才是高大上和未来的发展方向。为此,我要发表一点个人看法。
我系统地学习编程语言的时间顺序是MCS51汇编、X86汇编、C/C++、梯形图(学梯形图之前对继电控制就已经非常熟悉了)。由于MCS51汇编学得不错,这导致我很喜欢用置位和复位指令。汇编、C都干过项目,以前还经常用C来解决问题(Borland C时代),太长时间不用,现在也生疏了。
要理解PLC梯形图就必须知道PLC的由来。我搬运汇总了一些外网资料,错的地方请大家指出,我英文很渣,不足的地方还请大家进行补充。
在没有PLC的时代控制柜是这样的。这个是老式电梯的控制柜,其实不算复杂。
想起刚参加工作时,厂里有条80年代国产全自动化生产线,做工非常好。压力温度50点左右,电机30台左右,主控柜(4门)加操作台足有8米的宽度,远程控制柜宽1.5米,柜前柜后双面安装,指针温度压力表,全继电控制。据说A3图纸有一本字典的厚度(我没看到过)。我参加了生产线改造,主控柜控制线就拆了3大箩筐。这要排查故障,想想头皮都发麻!看看典型的继电原理图,我把它旋转了90度。
是不是和梯形图一样一样的?
1968年美国通用汽车液压部门搞了个“Standard Machine Controller”(标准机器控制器项目),目的就是改变故障率居高不下的继电控制系统。好几家公司参与,1969年最后搞出来拿去测试的只有三家:
DEC:Digital Equipment Corporation(数字设备公司),提供型号PDP-14。编程设备是PDP-8计算机,实际上PDP-14是PDP-8的工业接口。这家公司巨牛。下图是PDP-8。
我没有找到PDP-14的照片,上图是PDP-14的一个主要部件。
3-I:Information Instruments Inc.(信息仪器公司),提供型号PDQ-II。这家公司在这个项目后很快就被AB收购了。所以罗克韦尔也说PLC是他们发明的,这也是没什么问题。
DEC和3-I是计算机公司,与通用汽车液压部门很早就有合作,标准机器控制器项目之前就已经把计算机用于通用生产线监控了。
Bedford Associates:提供型号084,其实是他们公司第84个项目。他们是工程公司,其实在1967年就开始着手这方面的工作了,后来成立了设备制造公司就是大名鼎鼎的 莫迪康MODICON(Modular Digital Contraller模块化数字控制器)。
脑洞大开,有没有!
DEC和3-I提供的控制器更像是计算机,(DEC也有基本的梯形指令),但编程很麻烦,需要返厂。而Bedford必定是搞工程的,他们很懂继电控制,所以084从一开始就以继电控制原理来开发,梯形图就是它的编程语言,通过插入编程单元就可以编程。
1年后,084赢了。
当然那个年代还不能输入图形,而是手工解析梯形图,所以梯形图对于084来说就是“继电控制描述语言”。用今天的话来说,梯形图就是工控行业的HDL硬件描述语言!而其它厂家发现梯形图逻辑清晰,本就熟悉继电线路的电气人员特别容易掌握,所以纷纷都开始支持梯形图编程。其实。同时代还有其它厂家也搞出了基本相同的控制器,制造继电器的厂商Struthers-Dumm的VIP-521,搞液压的Vickers的PC-1000。但是由于MODICON设备可靠,梯形图太方便,所以一举成名。1976年AB公司申请了PLC的专利名称(
PLC是AB公司1976年的专利名称,不是莫迪康的),后来PLC就成了设备名称了,就好像吉普车对于JEEP公司。
可以说,没有梯形图就没有PLC 。回到现在,梯形图编程过失了吗?当然没有!对于处理逻辑量,还有什么能比图形化的梯形图更易于理解的呢?40年前没有,现在也没有?图形编程最大的优势是传递的信息量大,人识别图形的能力远胜于识别文字,而梯形图能二值化图形元素,避免了人识别图形时的模糊性。说白了,就是简单! 梯形图更与时俱进,现在的被控对象已经远非40年前简单的开关量,梯形图也在发展。比如,梯形图最受病垢的数学计算,现在不是也有厂商开始支持梯形图直接数学表达式输入了吗?我想,硬件描述简单、与时俱进,这才是梯形图长盛不衰的核心原因。梯形图相对于文本有什么不能做的吗?我认为没有什么是文本做得了而梯形图做不了的!你把文本加个框就是梯形图。学文本编程吗?当然需要!要不然那么多不懂继电控制从软件转工控的人编写的程序我们如何看懂呢?还有触摸屏、机器人、运动控制等非PLC设备,我们如何玩得溜呢!大家也可以了解下,可视化编程语言(VPL)和低代码开发平台(LCDP)的概念和发展,对理解编程语言发展有一定帮助。
分割线
此贴子一发,也引起论坛网友的大量关注和讨论:
1056128144 : 梯形图最令我讨厌是整屏显示不了几行。注释能有在每行后面的吗?显示屏基本都是二十几吋了。
gk_0 : 我就是喜欢梯形图,逻辑性强,除了数学运算的不太直观以外,好像没有啥缺点么
bnnyygy : 大小不是关键,分辨率才是关键。普通笔记本1366*768,现在新笔记本一般1920*1080,或者更好点的是2K分辨率。
蜀中之首: 在80年前后(记不太清具体哪年),无线电杂志出过连载,关于可变逻辑控制电路,矩阵二极管,利用其特性用短线组成控制逻辑,减少继电器配线达到修改控制工艺。
记得最早也叫PC,为了与电脑区别就用了PLC,可变程序逻辑控制器。梯形图的出现就为了接地气,普通电气工人也看得懂,恐怕还要保留很久。
lvpretend: 好像Struthers-Dumm走的是二极管矩阵的路子。原来PLC被AB申请了专利,估计其它厂家只能称为PC,后来专利到期了PLC就成了通用名称。
cvlsam : 您说少了,从第一台PLC开始就有梯形图了。
pqsh : 我不支持文本编程,始终认为文本编程是个中间过程,只是由于编程环境平台能力不够的原因。人们应该直接表达诉求,而不是通过代码。同样的,在网站制作方面,大咖们是十分鄙视fp、dw的。而我觉得不可想象。一个丰富的网页,竟然是代码敲的,这得多么变态啊?当然,在实现复杂功能时,表达更准确时,确实需要文本(文字)。但是,触摸屏、机器人、运动控制、将来也应该发展到不需要或者少需要文本。至少,触摸屏和工控上位,是避免用文本(脚本)的。
微鑫科技 : 真正的高级控制器是无法用梯形图去编程的。例如:机器人、视觉识别系统,一些对实时性高、精度高、高速运行、高运算量的设备等,是PLC无法的胜任的。只是说PLC的编程思想比较适合电工,简单而已。真要说运行效率,还没有单片机高;同样的PLC,一个采用梯形图编程,一个采用C语言编程,我想C语言的执行速度要高于梯形图的,但是编程时间上来说,梯形图要大大缩短周期,并且后期容易维护,想增加个功能什么的,修改起来简单,这个就是梯形图的优点,再一个就是高级语言对于电工来说是个头疼的事,不如梯形图好学。
lvpretend : 恰恰相反,梯形图的执行效率比文本高。早期的梯形图与指令表(汇编)是对应关系,即使到现在梯形图仍然比文本有更高的效率,原因就是因为梯形图是硬件描述语言,PLC的处理器设计会专门针对梯形图做优化。而梯形图借PLC的众多受众和图形化的特点也向非PLC控制器扩展(大名鼎鼎的树莓派都支持梯形图编程了),大有成为一种通用语言的态势。文本作为当下编程语言拥有最大的用户群,向PLC扩展也不会停下脚步,随着小型PLC处理器处理能力的增长,肯定很快也会普及文本编程。
dffeifei110 : 逻辑控制用梯形图方便,我选择梯形图,文本语言用于数据交换更好用,各有千秋吧,当然也与个人习惯有关。
MIC小赖 : IEC61131-3定义了常用的5种编程语言就说明其各有好处,而且对我来说,固守一个东西本身就是作死。但是也不可能完全放弃一个东西,除非是真正意义上技术的淘汰。
乌龟船长 : 梯形图还是很有市场的,大众、通用的标准程序大部分仍然用梯形图,当然也有SCL等等其他语言。
chengzheng : 信息量太大了。搞了这么多年,还是第一次看到。
A.M : 梯形图对于维护来说可真是噩梦…整屏显示不了多少,上下反反复复看逻辑…梯形图是给电工看的,有了这个电工随时可以转行编程。但是用梯形图编上万点的项目想也不敢想…肯定会累死。
人类群星闪耀时 : 好像最早兴起的商业化PLC是AB的PLC-2/3那一批,不过国内我还没见过,只见过PLC-5,AB的营销路子有问题。
对于本文以及论坛网友们的评论,您有啥看法?留言区集合
版权声明:本文版权所有为中华工控网工控论坛及作者lvpretend,转载请与本号联系。
相关问答
松下PLC编程中DF是起上面作用的,牛人们教教我谢谢啦?
松下的DF指令和上升沿开始指令的区别只在所对应的型号不同。DF指令相当于三菱的LDP指令、DF/相当于三菱的LDF指令。松下的DF指令和上升沿开始指令的区别只在...
dfmov是三菱plc什么指令?
dfmov是三菱PLC中的一条指令,它用于将数据从一个数据寄存器移动到另一个数据寄存器。这个指令可以在程序中使用,通过指定源寄存器和目标寄存器的地址来实现数...
三菱PLC指令DFLTD114D340是什么意思?
1,三菱PLC指令DFLTD114D340的意思是:将寄存器D114的值转换成浮点数,并存储到D340寄存器中。2,当用到浮点指令,而没有浮点标志时(M8023=OFF),,源数...1,...
PLC编程调试有什么标准吗?感谢回答
[回答]大中型PLC通信总线(含接口设备和电缆)应1:1冗余配置,通信总线应符合标准,通信距离应满足装置实际要求。如果程序中某些定时器或计数器的设定值过大...
磁性开关如何发射信号到plc?
磁性开关主要分两种:干簧管和霍尔。PLC有一般两种输入信号:0V输入和24V输入干簧管的无指示灯的不区分极性,它只是一个触点开关,靠近磁性体时接通,所以需要输...
三菱PLCMOⅤK200D340是什么意思?
1,三菱PLC指令DFLTD114D340的意思是:将寄存器D114的值转换成浮点数,并存储到D340寄存器中。2,当用到浮点指令,而没有浮点标志时(M8023=OFF),,源数据将...
s7-200plc怎么设置时间到plc锁定-ZOL问答
直接用计时器+计数器就可以了,如果你需要他在某年某月某日停,就需要读出PLC时间.有用(0)回复cootar写程序,为什么啊有用(0)回复dfrujtiyoiuoi使用Clear...
在PLC中的有效操作数是什么意思.如何才能正确的应用有效操作...
[最佳回答]就是你操作符后面的地址或者变量,常数之类的比如你mov50000vw100就不是有效的因为vw最大存储32767等等.就是你操作符后面的地址或者变量,常数之...
【西门子PLCs7-200中ASCII码转十六进制指令ATH是如何得到结...
[回答]有效的ASCII码输入字符是0到9的十六进制数代码值30到39,和大写字符A到F的十六进制数代码值41到46这些字母数字字符.VB1000110010(16#32);0011010...
plc学习机编程后能当plc使用?同志们!求推荐一下!!
[回答]如果是初学PLC的话,建议先从了解PLC的基本相关资料入手,然后学习三菱PLC,网上随处可下载其编程软件和模拟仿真软件,而且比较符合亚洲人的使用习惯,...