用非西门子品牌的组态软件、对西门子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方法,解析起来可能要麻烦一些。

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

毫秒转换器_毫秒转换_毫秒值转换为日期工具

限时特惠:本站每日持续更新海量各大内部网赚创业教程,会员可以下载全站资源点击查看详情
站长微信:11082411

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。