西门子time类型数据的转换以及如何用C#读写西门子time类型数据

西门子time类型数据的转换以及如何用C#读写西门子time类型数据

编码文章call10242025-02-04 12:23:4514A+A-

用非西门子品牌的组态软件、对西门子PLC进行上位机开发时,有时会遇到这样的情况:当需要读、写PLC中的time类型的数据时,会有一点点困难。因为非西门子品牌的组态软件,大多数是不支持西门子time类型的数据,这个时候,需要怎么办呢?我们只需要将time类型,转换为通用的数据类型,比如说浮点型real,就可以愉快的进行读写操作了!

如何在西门子PLC中实现time类型与real类型的互转

本次所讲解的方法,硬件用的是西门子315pn/dp型号的PLC,软件是西门子博途15.1。

本次介绍的案例time类型变量是一个PID参数中积分时间,单位是ms。在上位机中写入的数值的单位是秒。

real类型转为为time类型,用于在上位机中对PLC中的time写入

转换思路

需要先进行秒和毫秒之间的转换,数据类型为浮点型。再将转换后的值由浮点型进行取整后,取整为dint类型,具体的功能块的实现,请看下图。


Time类型转换为real类型,用来读取plc中time类型的数据。

转换思路:

和real类型转换为time类型的思路,大致相反。具体的实现过程见下现。


下图是在OB1中的调用情况。






如何用C#读、写西门子time类型数据

本案例使用的软件是VS 2019,与西门子的通信的通信库是S7.NetPlus,使用的是winform框架。

在窗体中使用两个按钮,一个按钮用来读取plc中time类型数据,读取的内容显示,在label标签上。一个按钮用来写入数据,将text box中输入的数据写入给plc的time类型变量。实现代码见下图


对于读写time类型这种比较特殊的数据,使用上图中read与write方法比较简单方便直接,在实际项目中可以把这一类的数据整理到一起进行封装处理。如果使用readbytes方法,解析起来可能要麻烦一些。

下图是读、写操作的测试结果


点击这里复制本文地址 以上内容由文彬编程网整理呈现,请务必在转载分享时注明本文地址!如对内容有疑问,请联系我们,谢谢!
qrcode

文彬编程网 © All Rights Reserved.  蜀ICP备2024111239号-4