我以前用过单片机将温度显示在LCD1602显示屏上,前一段时间有位学员朋友在学习PLC模拟量输入时,想使用温度传感器实时显示所测环境的温度,在操作时由于没有处理好显示数值的类型,得不到想要显示的小数点数据,造成了显示有误差,今天给朋友们分享一下如何在触摸屏上显示出带小数的温度数据。


这个操作过程一般分为三个过程,第一步是硬件的准备,先准备好PLC及A/D转换模块、PT100温度传感器、触摸屏、24V电源等硬件;然后再进行PLC的硬件线路的连接,硬件接线比较简单,除了给PLC加上220V交流工作电压以外,我们还要给触摸屏加上直流24V电源。


在数据线连接方面,我们需要两根数据线,一根线用来把电脑与PLC连接起来,起到下载梯形图和软件监控梯形图的作用;另一根线用来把PLC与触摸屏连接起来的数据线,起到PLC与触摸屏通信的作用。在电脑端,两根线的端口使用的是USB口,在PLC端使用的端口为USB转RS232串口,形状为圆形八针线;在触摸屏端,使用的是USB接口线。最后我们再将温度传感器的两根线接到模拟量输入口的0V和A1点就完成了硬件线路的连接。


接着在电脑端打开组态软件,在“设备窗口”添加“通用串口父设备”,设备选择我们当前使用的PLC型号,比如本案例中我们使用FX3UC类型的PLC。同时还要我们还要再设置电脑与PLC和触摸屏三者之间的通信端口号,这主要是为了防止电脑与触摸屏、电脑与PLC之间通信时产生冲突。


在电脑端通过组态软件,把触摸屏上的RS232串口端设置为COM1;我们再通过PLC的编程软件,把PLC的串口端号设置为COM3;最后在电脑的硬件属性中使用COM1和COM3端口就可以了,这样我们就要可以在电脑、PLC和触摸屏之间进行程序下载、组态下载以及三者之间的相互通信了。我们在设置这些硬件和软件时要考虑周全,否则会造成通信错误的现象。从训练来看有部分学员通讯没有成功,就是因为三个硬件之间的通信端口号设置不当造成的,这是我们在操作时,需要注意的地方。


操作的第二步是编写梯形图,我们用PLC编程软件GX-Works2/3或者GX-Developer编写温度采集转换的梯形图。我们通过PT100温度传感器把实时采集到的温度信号,通过A/D转换模块把数据送到D8058温度数据寄存器中。然后通过传送指令把温度数据寄存器中的实时温度数据送到通用寄存器D0中,为了能够得到带有小数点的精确温度,我们再用一条浮点数据处理指令FLT,通过整数转为浮点数指令,也就是把整数值转换为带小数的数值,再把这个数据传送到通用寄存器D2之中。最后为了能够在触摸屏中显示带小数点的实时温度数据,还要用一条带处理浮点数的除法质量,就是把D2中的数据缩小十倍,然后送到D4寄存器中显示出来。

这几条语句写完之后,按下F4快捷键编译无误后就可以下载到PLC中了,我们点击编辑按钮,就可以通过软件在线仿真了,从仿真软件梯形图中可以看到,此时通用寄存器D4中所显示的24.6就是当前传感器采集的实时温度值,如下图所示。

接下来,我们要做的是如何把采集的实时温度数据显示到触摸屏上。我们用MCGS组态软件建立一个动画组态显示窗口,在窗口的工具栏中拿出一个“标签A”,用鼠标双击所建的标签A,然后在“输入输出连接”下面的选项中的“显示输出”前打个“✔”。在“显示输出”编辑页面中选中“数值量输出”,在变量表达式中把“根据采集信息生成”选中;通道类型选“D数据类型寄存器”、通道地址写0,这表明我们在建立的标签中显示D0中的数据是整数。

编辑完之后,我们编译下载到触摸屏中,这时我们就可以看到D0显示的温度数据了。但是寄存器D0中的数据没有小数部分,这不是我们想要看到的数据。我们不妨再建立一个标签A,用第二个显示标签来显示带有小数点的温度值。

前面的组态编写都一样,所不同的是在通道地址写4,这表明我们在建立的标签中显示D4中的数据是带有小数的数据。接下来重点到了,我们要在数据类型中选择“32位浮点数”,在操作过程中,很多学员都默认选了16位无符号二进制造成了显示错误,如下图所示。

最后,再一次下载组态程序,验证组态是否显示正确。下载后我们观察到温度显示已经达到了要求,为了显示更加形象逼真,我们可以在所显示的温度数据后面设置单位,比如度或者℃,这只需要在“标签动画组态属性设置”中设置添加温度符号就可以了,如下图所示。

通过这个小小的实践案例我们可以看出,在实践操作中我们要把问题考虑周全,不能想当然地认为。另外还需要多多练习,从实践锻炼自己分析问题和解决问题的能力。