string类型的数据可以直接用串口发送吗_【连载4】西门子1200的数据转换比较问题...

23a72546c186356a83eeee5e5b3c3c2b.png

工控多年的公众号运营者

我经常分享原创技术内容

内容涉及到工业多个方面

分享新知识带你一起进步

PLC内的数据分为很多种类型,如BOOL,CHAR,INT,DINT ,REAL,LREAL,STRING等等。

有的数据类型可以互相转换

如INT类型可以隐式转换为DINT类型。

DINT类型也可以显式转换为INT类型。

在PLC中新建立一个DB块,用于存放数据

fdababa64e9d30b34b0d2e9f28087b7e.png

由于在PLC内,INT类型占用16Bit,而DINT类型占用32Bit,则可以通过将INT类型直接赋值给DINT类型即可,不会报警告和错误。

396255845bd11385e1b13fed3928d604.png

若将32Bit的数据放置到16Bit的数据中,则会有提示。

代码下面有一条黄色波浪线,代表警告,此操作会导致数据丢失。

c7aa6c940185d8c355d1a8fc39c053ef.png

若我们定义的DINT类型范围为0-1000,小于INT类型的数据长度,则完全可以在不产生警告的情况下,将DINT数据转换为INT类型数据,这就用到显式转换。

如下图所示,当我们知道我们需要转换的数据可能会存在精度问题,并且可以接受由于精度问题导致的数据丢失,则系统不会给我们警告。

eb617c5cc81f2f7511d55dcbd5cbf1ce.png

此条程序和上条的作用一致,通过使用DINT_TO_INT方法,将DINT类型的dintTemp显式转换为INT类型的intTemp

然而,并不是所有的数据都适用这种方式,以下方式:

9f5aac0a97a5102973cae2cac223bef3.png

讲解ST语言中FOR循环增量表达式

这篇关于DB9串口的讲解一定要收藏

EPLAN绘图几个小技巧

昆仑通态触摸屏485通讯读取温湿度传感器数值显示

电气仿真软件(文末有链接)

通讯获取温湿度传感器数值

威纶通触摸屏按键语音播报

威纶通触摸屏排程功能使用

三菱MOV K8 K4M10

三菱GX Works2梯形图编程注释多语言切换

三菱FX_PLC_ST语言编程(系列教程)

=>更多原创内容点击菜单查看【我的原创】

ed4f26b9fc62f887fe95e32498b0558e.png

以下方法,介绍如何进行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的朋友,想了解更高级的编程,在公众号中点击【我的原创】查看更多工控知识

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值