工控多年的公众号运营者
我经常分享原创技术内容
内容涉及到工业多个方面
分享新知识带你一起进步
PLC内的数据分为很多种类型,如BOOL,CHAR,INT,DINT ,REAL,LREAL,STRING等等。
有的数据类型可以互相转换
如INT类型可以隐式转换为DINT类型。
DINT类型也可以显式转换为INT类型。
在PLC中新建立一个DB块,用于存放数据
由于在PLC内,INT类型占用16Bit,而DINT类型占用32Bit,则可以通过将INT类型直接赋值给DINT类型即可,不会报警告和错误。
若将32Bit的数据放置到16Bit的数据中,则会有提示。
代码下面有一条黄色波浪线,代表警告,此操作会导致数据丢失。
若我们定义的DINT类型范围为0-1000,小于INT类型的数据长度,则完全可以在不产生警告的情况下,将DINT数据转换为INT类型数据,这就用到显式转换。
如下图所示,当我们知道我们需要转换的数据可能会存在精度问题,并且可以接受由于精度问题导致的数据丢失,则系统不会给我们警告。
此条程序和上条的作用一致,通过使用DINT_TO_INT方法,将DINT类型的dintTemp显式转换为INT类型的intTemp
然而,并不是所有的数据都适用这种方式,以下方式:
讲解ST语言中FOR循环增量表达式
这篇关于DB9串口的讲解一定要收藏
EPLAN绘图几个小技巧
昆仑通态触摸屏485通讯读取温湿度传感器数值显示
电气仿真软件(文末有链接)
通讯获取温湿度传感器数值
威纶通触摸屏按键语音播报
威纶通触摸屏排程功能使用
三菱MOV K8 K4M10
三菱GX Works2梯形图编程注释多语言切换
三菱FX_PLC_ST语言编程(系列教程)
=>更多原创内容点击菜单查看【我的原创】
以下方法,介绍如何进行WORD类型的REAL类型高16Bit和REAL类型数据进行比较
在设备调试中,需要和设备B进行交互,通过读取设备B内的数据判断是否将数据发送给B设备。发送给设备B的数据只能是REAL类型,然而,从设备B侧读取的数据,只能是16位WORD类型。
这意味着,当我写入设备数据为REAL类型的"1.0"我读取此地址的数据只是高16Bit和低16Bit的数据。
由于REAL类型的“1.0”存放的数据只是在高16Bit,低16Bit为0,所以,仅仅需要比较高16Bit和REAL类型“1.0”的关系即可。
PLC中有可按位寻址的寄存器M,例如M100,可以定义MW100和MD100,定义REAL类型的MD100,将REAL类型的1.0传送到MD100,即可实现读取MW100和仪表读取上来的16Bit数据进行比较。
若通过类型转换,将读取上来的16Bit数据通过INT_TO_REAL方式转换,转换的结果并非需要比较的数值。
正在学习PLC的朋友,想了解更高级的编程,在公众号中点击【我的原创】查看更多工控知识