故事作者:www123456

最近创作

看看TA的故事

【软件编程】TIA读取PLC时间提取到字符串的简便方法

已锁定

www123456

西门子1847工业学习平台

  • 帖子

    2379
  • 精华

    87
  • 被关注

    68

论坛等级:至圣

注册时间:2005-09-14

钻石 钻石 如何晋级?

【软件编程】TIA读取PLC时间提取到字符串的简便方法

2645

1

2021-02-22 13:45:29

【软件编程】TIA读取PLC时间提取到字符串的简便方法

     一次做自动化设备与MES系统对接部分, MES工艺要求现场操作人员相关信息在工位HMI进行登陆确认(设有操作权限),以便确认人员信息与人员关联,PLC控制系统还要自动记录保养人员信息、内容及数据,作业人员可在HMI上读取点检作业指导书、工艺技术参数,故障发生时间,故障处理时间,复位时间以及故障结束时间,系统自动记录作业人员信息及点检过程信息,并汇总数据库,所有这些上传数据都得有当时系统时间,所以PLC编程中要有采集系统日期时间的函数,但MES部分是另外一家公司负责,是专门做IT行业的,对我们设备厂家提供的数据格式比如DTL等不愿解析,而且他们是先于甲方签订的协议,要我们按他们的要求提供数据,即提供字符串格式数据,我们经过分析后发现PLC也无法直接输出这样格式的数据。

    这里遇到的问题就是把DATE数据类型转换成 STRING 类型。以前在STEP7中也没有直接的转换指令,也是需要借助多个转换指令完成这个功能的,比如FC5,FC16 , FC30等功能块,要把年、月、日这三个变量转换成 BCD 码,然后还要把 DATE_AND_TIME 格式数据的前3个字节提取出来,分别转换成 INT型,但TIA里面没有这样的函数,

只能找到T_CONV:转换时间并提取的函数,输入:整数、TIME、日期和时间类型,输出:整数、TIME、日期和时间类型, 显然输出无法直接转字符串,无法满足工艺要求,而且这个数据量非常大,对我们编程造带来一些问题。

    后来经过搜索资料找到TIA 的扩展函数库LGF,提供的函数以“通用函数库”的形式,而且该库可以无限制地使用,并且包含 FIFO、搜索功能、矩阵计算、天文计时器等很多实用功能。时间转换函数编程时如下所示:

 


这个函数库里面第6个函数是 Converter operations,这里以1.01版本为例:也就是上面的LGF_DTLtoString功能块,比如

日期 DTL 22.0 DTL#2021-02-10-08:08:08

YEAR         UInt  22.0 2021

MONTH      USInt 24.0 02  

DAY         USInt 25.0 10  

WEEKDAY      USInt 26.0 5

HOUR         USInt 27.0 8

MINUTE      USInt 28.0 8

SECOND      USInt 29.0 8

NANOSECOND U DInt    30.0 0

    一共10个字节,通过这个函数可以直接把采集的时间格式数据转换为字符串,不必经过层层转换,而且这个函数可直接通过参数调用,具有通用性,不受知识产权保护限制,因此可进行自行修改编辑。

 


包括界面说明注释在内,写的很完善,库中的所有块都可以在S7-1200/1500控制器种使用,而且支持使用 S7-PLCSIM 进行仿真,非常适合自动化与MES系统对接时调用,顺利解决了本文开头遇到的问题。


【软件编程】TIA读取PLC时间提取到字符串的简便方法 已锁定
编辑推荐: 关闭

请填写推广理由:

本版热门话题

网友专栏

共有3441条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

  • 分享

  • 只看
    楼主

top
X 图片
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。