西门子S71200自建数据类型统计设备OEE的方法

OEE(设备综合效率)即表现设备实际的生产能力相对于理论产能的比率,是一种独立的测量工具,用于监控、评估和提高生产过程的有效性。OEE=时间开动率×性能开动率×合格品率=(开动时间/负荷时间) ×(加工数量×实际加工周期 /开动时间)×(理论加工周期/实际加工周期)×(合格产量/加工数量)= (开动时间×加工数量×实际加工周期×理论加工周期×合格产量)/(负荷时间×开动时间×实际加工周期×加工数量)约去分子、分母的公因子,OEE = (理论加工周期×合格产量)/负荷时间 = 合格产品的理论加工总时间/负荷时间,这也就是实际产量与负荷时间内理论产量的比值。

这里我们只采用“OEE = (理论加工周期×合格产量)/负荷时间”的简单公式来记录。不深入讨论计算合理性,只是记录产线每日OEE来做生产策划评估用。

一般思路是用工控上位机来采集PLC的相关数据来计算、显示并记录设备OEE,在实际运用中,操作者经常性不开启上位机或由于网络故障引起设备OEE记录的不完整性,此案例设计在PLC内采集、计算、记录一个月的数据。以下谈谈简单通过PORTAL  V16利用S71200计算并存储数据的方法。

数据采集要求:每日统计时段(如设定为8:00-18:00)内,加工节拍时间,产品数量、不合格品数。

计算过程:OEE = (理论加工周期×合格产量)/负荷时间

记录:建立OEE数据类型,并建立OEE数组存储一个月记录。

1、建立新数据类型,在S7-1200项目中点击“PLC数据类型”下“添加新数据类型”,打开数据类型模板。

建立相关数据名称及数据类型,建立后如下:

其中OEE、每日开始时间、结束时间、运行时间、产品名称、生产数量、不合格品数、生产节拍时间等,就是每日需要记录的数据全部建立起来(本例有2个单元),建立OEE数据类型完成。

建立新的数据类型后,我们在其“属性”的“常规”中将其改名为“OEE_day”。

2、建立OEE记录DB块

新建全局DB块,名称为“OEE_Data”。

为便于上位机访问,需要将此DB块属性设置中“优化的块访问”勾选取消。

在该DB块中建立数组“OEE_day”(每日记录):

在数组限值中设定为“1..31”,数组下标从1开始,这样可以直接对应日期。

建立后如下:

然后在DB块“OEE_Data”中建立其他与OEE相关的数据,例如每日开始结束时间、生产节拍的变量,用于在触摸屏或上位机中设定。

多建立一个数据类型为”OEE_day”的“OEE_today”变量组 ,主要给上位机读取当日数据,记得勾选“保持”,将该DB块设置为断电保持型。

至此新的数据类型及新的全局DB块建立完成。

  1. 计算程序编写

首先如果我们想知悉每日开机时间,可以在“Start[OB100]”启动块(上电启动一次)用”RD_SYS_T”函数将当前系统时间读出来后传递给DB中的当日开始时间变量,同时把每日生产数据初始化;考虑到当日如发生故障等原因导致关机重启的情况,建立个”sign_day”的bool变量,每日首次开机后置1,统计时间段后置0就可解决这个问题;如果在统计时间段内关机,引起”sign_day”不能置0,导致第二天不能记录开机时间的话,我们还可以通过判断每日生产数据是否完成初始化来另行处理,这里就不展开了。

建立FC块“OEE_Calculate”,首先获取当前时间并取得当日日期”#DAY”临时变量,用于将最后计算数据记录到DB块“OEE_day”中的当日记录中去,然后把当前时间记录到本日结束时间,这样就可以了解本日生产结束时间(本日设定生产时段内有效)

计算当前运行时间并传递至由”#DAY”定义的本日记录中去。

OEE计算过程略。。。同样将结果传递到以”#DAY”定义的DB块中去,最后IF语句是为了避免没有产量导致算式除0的bug出现(本例为两个单元、一台搬运机器人组成的产线,总OEE根据各自产量分权统计的方法,所以会出现算式除0的情况,在此不讨论OEE计算方法合理性)

下载运行后就可以将每日统计时段内的数据计算并存储到与日期对应的DB块”OEE_day”数组中去了,就可以在S7-1200中记录一个月的OEE数据,数据的完整性就不受上位机及网络故障的影响了。

下章我们讲讲怎样在组态王6.55中建立与S7-1200的通讯并显现OEE当日动态变化的方法,敬请关注。

西门子S71200自建数据类型统计设备OEE的方法相关推荐

  1. 西门子array数据类型_西门子S71200之间以太网通信(图文)

    西门子S7-1200之间以太网通信 一.通信前的准备 首先创建新项目,并命名为"s7-1200之间通信",如下图所示: 然后组态设备,选择s7-1200的CPU 1214C DC/ ...

  2. 西门子S7-1200与汇川H5U通过HT3S-PNS-ECS网关实现Profinet与EtherCAT协议的主站设备进行数据交换

    1.概述 本文描述西门子S7-1200与汇川H5U通过HT3S-PNS-ECS网关进行数据交换的组态过程及运行结果.使用到的软硬件列表如下: S7-1200, 使用 Portal Step7 V17软 ...

  3. 工业智能网关BL110详解之九十: 实现西门子S7-1200 PLC接入金鸽modbus云平台

    LAN 接口的配置采集西门子S7-1200 PLC的配置 工业智能网关BL110一共有一 个LAN 接口,一个WAN接口,可以通过LAN 接口采集数据,通过WAN接口接入局域网,设置过程不一样,WAN ...

  4. 32位浮点数在威纶触摸屏显示_MCGS触摸屏与与西门子 S7-1200 PLC以太网通讯

    触摸屏(touch screen)又称为"触控屏"."触控面板",是一种可接收触头等输入讯号的感应式液晶显示装置,当接触了屏幕上的图形按钮时,屏幕上的触觉反馈系 ...

  5. 工业智能网关BL110详解之八十八: 实现西门子S7-1200 PLC接入华为云平台

    LAN 接口的配置 采集西门子S7-1200 PLC的配置 工业智能网关BL110一共有一 个LAN 接口,一个WAN接口,可以通过LAN 接口采集数据,通过WAN接口接入局域网,设置过程不一样,WA ...

  6. 工业智能网关BL110详解之八十五: 实现西门子S7-1200 PLC接入OPC UA云平台

    LAN 接口的配置采集西门子S7-1200 PLC的配置 工业智能网关BL110一共有一 个LAN 接口,一个WAN接口,可以通过LAN 接口采集数据,通过WAN接口接入局域网,设置过程不一样,WAN ...

  7. 自己动手——实现手机APP远程监控PLC(西门子S7-1200)

    一.准备工作. 1.1在对接前我们需准备如下物品: 1)    西门子S7-1200PLC一台,及通讯用RJ45网线. 2)    西门子CB1241 RS485模块. 3)    河北蓝蜂科技的DT ...

  8. 工业智能网关BL110详解之八十四: 实现西门子S7-1200 PLC接入Modbus TCP Server云平台

    LAN 接口的配置 采集西门子S7-1200 PLC的配置 工业智能网关BL110一共有一 个LAN 接口,一个WAN接口,可以通过LAN 接口采集数据,通过WAN接口接入局域网,设置过程不一样,WA ...

  9. 基于信捷HMI和西门子S7-1200的TCP通信解析

    文章目录 一.设置 IP 地址 二.软件程序 三.使用 Wireshark 抓包 四.协议分析 五.抓包分析 六.附录:功能码 七.附录:IDS 地址规范码 八.附录:数值传输码 九.附录:数据区域码 ...

最新文章

  1. swoole process进程 多分发
  2. RESTClient 用法
  3. 霍金:AI或许能根除疾病和贫穷,但也可能摧毁人类 | GMIC 2017
  4. 堆栈溢出回答了我们不知道的Java首要问题
  5. 06-对图像进行腐蚀操作
  6. 检测php加密方式,一种php加密方式
  7. UVA 12101 Prime Path (素数筛+BFS)
  8. 禹洲:我们这一代人的困惑
  9. 柴犬为什么总是被卡住狗头?
  10. 拼多多开除即将拿到股票的安全大佬;虾米音乐将永久关停;GitHub 解禁伊朗开发者使用权
  11. 请求重定向与请求转发的区别
  12. java 二分查找_Java二分法查找
  13. bitmap位图方案解决海量数据文件排序的问题
  14. 2021五一杯数学建模A题 疫苗生产问题
  15. 子桓说:被强制996工作制?用这种方法逃离最靠谱
  16. .mat转.tif 用于arcgis裁剪遥感图像
  17. 我的Unity3d学习总结
  18. ROS创建Publisher理解
  19. STM32USB鼠标+键盘串口控制
  20. Java之驼峰命名法

热门文章

  1. 西门子PLC学习笔记六-(Step7指令简介)
  2. 传奇服务器账号禁止登陆,传奇私服网关禁止登陆
  3. 计算机专业试题软件,计算机专业《工具软件》试题
  4. 各厂内推整理 | 第五期
  5. yaml简介读取及修改
  6. EPICS -- base的自动化安装脚本
  7. 【精品】Thymeleaf 语法基础
  8. ArcGIS将太平洋调至地图中间(改变地图中心经度)
  9. 为什么MacBook装Windows这么火?
  10. python将十位数变成0_Python:战略性地通过0-9的十位数字