评估运行/停机统计

利用这个报表,可以根据各种标准确定机器运行或停止的时间。如果 …_STATE_COUNT 和 …_STATE_EVENT 一致,则相应的时间间隔已在指定的评估时间窗口注册。

如果 _STATE_COUNT 大,那么起始时间早于评估时间段。通常,这两列数据的意义不大,除非要记录从其首次出现开始的时长时才有意义。

在系统内部,此报告是自停历史记录和效率报告的基础。

注意:

  1. 结果表包60多个列。在较短时间段内的评估肯定将是完全为空或仅为零。
    这些列不应该显示(动态)。
    示例:
    SHOCK_STATE_... 列仅包含<> 0数据,如果一个震动自停发生在评估时间段。
调用参数

参数

型号

描述

__sSchema

text

辅助数据库表的 schema。

使用临时表时,_sDestSchema immer == ‘‘必须始终为真

_sTable_Prefix

text,

辅助数据库表的前缀

_aSortorder

text[]

排序(列标题数组)

示例 。 ARRAY['MC_SORT_ID','START_TIME']

_bGroupByMachine

boolean

按机器分组

_bGroupByShift

boolean

按班次分组

_bGroupByUserName

boolean

按用户分组(在机器上)

_bGroupByPattern

boolean

按花型分组

_bGroupBySeq

boolean

按顺序分组

_bGroupByTicketUid

boolean

按工票分组(PPSUID)

_bGroupByTicketProductionId

boolean

按工票生产 ID 分组

_bGroupByTicketProductionSub1Id

boolean

按工票生产子 ID1 分组

_bGroupByTicketProductionSub2Id

boolean

按工票生产子 ID2 分组

_bGroupByTicketCustomerId

boolean

按工票客户 ID 分组

_bGroupByTicketArticleId

boolean

按工票货品 ID 分组

_bgroupbyday

boolean

按标签分组

_bgroupbyweek

boolean

按星期分组

_bgroupbymonth

boolean

按月分组

_aFilterShift

integer[]

按班次筛选

示例:仅针对班次1和3:
ARRAY[1,3]

_aFilterUsername

text[]

按用户筛选(挡车工)

示例: ARRAY[‚User_1,'User_3']

_aFilterPattern

text[]

按顺序筛选

示例: ARRAY['S-kUuG01','P-Sjo9v3']

_aFilterSeq

text[]

按顺序筛选

示例: ARRAY['SEQ-WNJhP3','SEQ-wMWzx2']

_aFilterTicketUid

bigint[][]

按内部工票UID 筛选

示例: ARRAY[3374994314,3738720541]

_aFilterTicketProductionId

text[]

按生产工票ID筛选

示例: ARRAY['2E0Hl4-H8T803-cId-8','2E0Hl4-H8T803-cId-8']

_aFilterTicketProductionsub1Id

text[]

按工票生产sub1D筛选

示例: ARRAY['SubId_2','SubId_21']

_aFilterTicketProductionsub2Id

text[]

按工票生产sub2D筛选

示例: ARRAY['-']

_aFilterTicketCustomerId

text[]

按工票客户 ID 筛选

示例: ARRAY['cId-2','cId-4']

_aFilterTicketArticleid

text[]

按工票货品 ID 筛选

示例: ARRAY['H8T803']

_aFilterUserState

Smallint[]

按用户状态筛选

示例: ARRAY[4,3]

_aFilterSintralState

Smallint[]

按Sintral状态筛选

示例: ARRAY[4,3]

返回表

型号

内容

MC_ID

integer

SKR 机器 ID

MC_SORT_ID

smallint

按机器名称按字母顺序排序

(可以借助MC_ID确定机器名)

SHIFT_STATE

smallint

班次,或者 NULL,如果_bGroupByShift == false

USER_NAME

smallint

用户,或者 NULL,如果_bGroupByShift == false

TICKET_CUSTOMER_ID

text

工票UID 或者 NULL,如果_bGroupByTicketCustomerId == false

TICKET_ARTICLE_ID

text

工票货品 ID 或者 NULL,如果 _bGroupByTicketArticleId == false

TICKET_PRODUCTION_ID

text

工票生产 ID 或者 NULL, 如果_bGroupByTicketProductionId == false

TICKET_PRODUCTION_SUB1_ID

text

工票生产子ID1 或者 NULL,如果_bGroupByTicketProductionId == false

TICKET_PRODUCTION_SUB2_ID

text

工票生产子ID2 或者 NULL,如果*_bGroupByTicketProductionId == false

SEQ_NAME

text

顺序名或者 NULL,如果_bGroupBySeq == false

PATTERN_NAME

text

花型名称或NULL,如果_bGroupByPattern == false

TICKET_UID

bigint

工票UID 或者 NULL,如果_bGroupByTicketUId == false

START_TIME

timestamp without time zone

分组开始时间
(输出行)

END_TIME

timestamp without time zone

分组结束时间
(输出行)

OVERALL_DURATION

interval

所有状态的总时长

TIME_ADJUST

interval

设定机器上的时间调整,在评估阶段,哪个时间段要由SKR添加。
由于夏季时间/标准时间的转换,实际天数会稍短或稍长。对于超出这个值的时间,该值仅用于估计存在的时间错误。时间输出修正非常复杂,需要对所有执行时间更换事件和原因进行详细分析。

对于异常的超出石英钟精度的较大时间差异,要确认原因。

不正常的原因有可能是实际时钟有故障,或手动时间设置错误。
原则上,校正时,TIME_ADJUST值必须部分或全部加到待确定的时间。

为了减小这些值,要确保机器的时区设置正确,而且机器始终与SKR连接。

通过EventList报告(EventType101,EventID1),可以确定较大的时间差异是何时发生的。

 

RUN 状态

生产时间

RUN _DURATION

interval

该状态持续时间

RUN_STATE_COUNT

integer

该状态下的时间段数量

RUN_EVENT_COUNT

integer

关于该状态的状态改变事件数量

 

STOP 状态

停机动作

STOP_DURATION

interval

该状态持续时间

STOP_STATE_COUNT

integer

该状态下的时间段数量

STOP_EVENT_COUNT

integer

关于该状态的状态改变事件数量

 

ENGAGING 状态

由用户进行的使用操纵杆的停机

ENGAGING_DURATION

interval

该状态持续时间

ENGAGING_STATE_COUNT

integer

该状态下的时间段数量

ENGAGING_EVENT_COUNT

integer

关于该状态的状态改变事件数量

 

YARN_FEED 状态

由于纱线控制装置或侧面纱线张力器引起的停机
断纱,大结头

YARN_FEED_DURATION

interval

该状态持续时间

YARN_FEED_STATE_COUNT

integer

该状态下的时间段数量

YARN_FEED_EVENT_COUNT

integer

关于该状态的状态改变事件数量

 

PIECE_COUNTER_ZERO 状态

衣片计数器为 填零

PIECE_COUNTER_ZERO_DURATION

interval

该状态持续时间

PIECE_COUNTER_ZERO_DURATION

integer

该状态下的时间段数量

PIECE_COUNTER_ZERO_DURATION

integer

关于该状态的状态改变事件数量

 

RESISTANCE 状态

遇阻力停机

RESISTANCE_DURATION

interval

该状态持续时间

RESISTANCE_STATE_COUNT

integer

该状态下的时间段数量

RESISTANCE_EVENT_COUNT

integer

关于该状态的状态改变事件数量

 

POSITION_NEEDLE_SENSOR 状态

探针引起的自停
断针

POSITION_NEEDLE_SENSOR_DURATION

interval

该状态持续时间

POSITION_NEEDLE_SENSOR_STATE_COUNT

integer

该状态下的时间段数量

POSITION_NEEDLE_SENSOR_EVENT_COUNT

integer

关于该状态的状态改变事件数量

 

TAKE_DOWN 状态

由织物牵拉造成的自停

TAKE_DOWN_DURATION

interval

该状态持续时间

TAKE_DOWN_STATE_COUNT

integer

该状态下的时间段数量

TAKE_DOWN_EVENT_COUNT

integer

关于该状态的状态改变事件数量

 

PROGRAMMING 状态

机器上的花型编辑时间

PROGRAMMING_DURATION

interval

该状态持续时间

PROGRAMMING_STATE_COUNT

integer

该状态下的时间段数量

PROGRAMMING_EVENT_COUNT

integer

关于该状态的状态改变事件数量

 

OTHER 状态

其他原因自停

OTHER_DURATION

interval

该状态持续时间

OTHER_STATE_COUNT

integer

该状态下的时间段数量

OTHER_EVENT_COUNT

integer

关于该状态的状态改变事件数量

 

SHOCK 状态

震动自停

SHOCK_DURATION

interval

该状态持续时间

SHOCK_STATE_COUNT

integer

该状态下的时间段数量

SHOCK_EVENT_COUNT

integer

关于该状态的状态改变事件数量

 

RACKING 状态

横移错误

RACKING_DURATION

interval

该状态持续时间

RACKING_STATE_COUNT

integer

该状态下的时间段数量

RACKING_EVENT_COUNT

integer

关于该状态的状态改变事件数量

 

NODATA 状态

注意:与MCSTATE_UNKNOWN_...不同
= 机器处于一种未知状态。

适用的状态和事件:
由于那个时间段没有数据,SKR 无法获知机器状态。

可能的原因:

  • 在整个时间段,机器尚未收录在 SKR 里,这个时间段是创建辅助数据库时设定的。
  • 在机器与SKR之间长时间未连接的情况下,机器的数据缓冲器空间不足以存储这个时间段里发生的事件。
  • SKR 在机器上被临时禁用

NODATA_DURATION

interval

该状态持续时间

NODATA_STATE_COUNT

integer

该状态下的时间段数量

NODATA_EVENT_COUNT

integer

关于该状态的状态改变事件数量

 

OFF 状态

机器已关闭。

OFF_DURATION

interval

该状态持续时间

OFF_STATE_COUNT

integer

该状态下的时间段数量

OFF_EVENT_COUNT

integer

关于该状态的状态改变事件数量

 

BOOT 状态

机器的启动进程

BOOT_DURATION

interval

该状态持续时间

BOOT_STATE_COUNT

integer

该状态下的时间段数量

BOOT_EVENT_COUNT

integer

关于该状态的状态改变事件数量

 

MCSTATE_UNKNOWN 状态
注意:与NODATA_...不同
= 由于数据丢失造成的未知机器状态

适用的状态和事件:

机器状态不为 SKR 所知。

可能的原因:

  • 机器通知一个新状态,这个状态尚未被SKR所知。
  • 机器操作系统故障。

MCSTATE_UNKNOWN_DURATION

interval

该状态持续时间

MCSTATE_UNKNOWN_STATE_COUNT

integer

该状态下的时间段数量

MCSTATE_UNKNOWN_EVENT_COUNT

integer

关于该状态的状态改变事件数量

 

[DEBUG_SRC_MIN_UID]

bigint

调试信息:<prefix>_collected_filter_rows 中开始时间 UID

代码示例 „sample_eval_stop_statistik.sql“

重要点:

假设评估辅表report_01.sample_xxxxxxxx已经生成。
创建评估辅表(光标运行- UDF)

为高效工作,输入一个空的字段‘‘而不是report_01,架构。但必须与创建辅表时指定的内容相同。

 

select skrpps_02.skr_mcid2mcname( "MC_ID",'skr'::cstring) AS "MC_NAME"

,* from skrpps_02.eval_stop_statistic_ex

(

 

'report_01' -- Schema

,'sample' –-Prefix name of help tables

, NULL -- ARRAY['MC_SORT_ID','START_TIME DESC'] – Sorting according to…

 

,true -- GroupBy Machine ?

,false -- GroupBy Shift ?

,false -- GroupBy UserName

,true -- GroupBy Pattern ?

,false -- GroupBy Sequence

 

,false -- GroupBy "TICKET_UID" bigint,

,false -- GroupBy "TICKET_PRODUCTION_ID" text,

,false -- GroupBy "TICKET_PRODUCTION_SUB1_ID" text,

,false -- GroupBy "TICKET_PRODUCTION_SUB2_ID" text,

,false -- GroupBy "TICKET_CUSTOMER_ID" text,

,false -- GroupBy "TICKET_ARTICLE_ID" text,

,false -- GroupBy "Day" text,

,false -- GroupBy "Week" text,

,false -- GroupBy "Month" text,

 

 

,NULL -- ARRAY[2,3] -- Filter by shift

,NULL -- ARRAY['User_3','User_4'] -- Selection/Filter UserName

,NULL -- ARRAY['S-kUuG0','P-Sjo9v3'] -- Selection/Filter Pattern

,NULL -- ARRAY['SEQ-WNJhP3','SEQ-9bEqD1'] -- Selection/Filter Sequence

,NULL -- ARRAY[3374994314,3738720541] -- Selection/Filter FilterTicketUid bigint[]

,NULL -- ARRAY['2E0Hl4-H8T803-cId-8','2E0Hl4-H8T803-cId-8'] -- Selection/Filter FilterTicketProductionId text[]

,NULL -- ARRAY['SubId_2','SubId_21'] -- Selection/Filter FilterTicketProductionSub1Id text[]

,NULL -- ARRAY['-'] -- Selection/Filter FilterTicketProductionSub2Id text[]

,NULL -- ARRAY['cId-2','cId-4'] -- Selection/Filter FilterTicketCustomerId text[]

,NULL -- ARRAY['H8T803'] -- Selection/Filter FilterTicketArticleId text[]

,NULL -- ARRAY[4,3] -- Selection/Filter UserState

,NULL -- ARRAY[4,3] -- Selection/Filter SintralState

);