GENESIS64 SCADA : คำนวนTargetชิ้นงาน/น้ำหนัก/ฯลฯ ตามเวลาอัตโนมัติ โดยใช้Expression

ตัวอย่างการคำนวนTargetเพื่อให้พนักงานรู้ว่าขณะนี้ควรผลิตได้จำนวนเท่าใด ทำให้รู้ว่าผลิตได้เร็วหรือช้ากว่าเป้าหมายไปเท่าใด เพื่อประโยชน์ในการปรับปรุงศักยภาพการผลิต

ตัวอย่างนี้มีเป้าหมายในการผลติคือ 60 ตันต่อชั่วโมง(1ตันต่อนาที) มีเวลาพักกระบวนการที่เวลา 12:00 – 12:50 ไม่ต้องนับTarget และเริ่มนับ12:50 ไปเรื่อยๆ การนับจะเริ่ม8:00 ถึง8:00 ของอีกวันที่จะเริ่มนับใหม่

/** Target Calculation Example by Sutthipong Senathee **/
/** คำนวนTagetอัตโนมัติตามระยะเวลา **/
/** ต.ย. การคำนวนโดยหยุดนับตอนพักเที่ยง 12:00 - 12:50 **/

DECLARE 
  @now = {{:ServerLocalTime}};
  @nowTS = @now - bday(@now);
  @tpm = 1; /** เป้าหมายต่อนาที  **/
BEGIN 
  
  /** ------ คำนวนเวลาที่ทำงานตามระยะเวลาที่ดำเนินไป ------- **/
     /** 8โมงถึงเที่ยง**/
  IF @nowTS >= totimespan("8:00:00") && @nowTS < totimespan("12:00:00")
  THEN SET @@= totalminutes(@nowTS - totimespan("8:00:00"));

  /** พักเที่ยง **/
  ELSEIF @nowTS >= totimespan("12:00:00") && @nowTS < totimespan("12:50:00")
  THEN SET @@= 240;

  /** หลังพักเที่ยงถึงเที่ยงคืน **/
  ELSEIF @nowTS >= totimespan("12:50:00") && @nowTS <= totimespan("23:59:59")
  THEN SET @@= 240 + totalminutes(@now - (bday(@now) +totimespan("12:50:00")));

    /** เที่ยงคืนถึงก่อนแปดโมง **/
  ELSEIF @nowTS >= totimespan("0:00:00") && @nowTS < totimespan("8:00:00")
  THEN SET @@= 910 + totalminutes(@nowTS);
  
  /** ผลลัพธ์ TARGET ที่คำนวนได้ ณ ขณะนี้ **/
  SET @@ = @@ * @tpm;

END

สามารถคัดลอกโค้ดข้างต้นไปใส่ในProcessPointหรือนำไปสร้างGlobal Expressionเพื่อให้สามารถเรียกใช้ซ้ำจากโมดูลต่างๆก็ได้

ตัวอย่างที่สอง เพิ่มเวลาพักที่15:00 – 15:15 น. ไม่มีการนับเพิ่มTarget (ถ้านับก็ตัดเงื่อนไขนี้ออกไป)

/** Target Calculation Example by Sutthipong Senathee **/
/** คำนวนTagetอัตโนมัติตามระยะเวลา **/
/** ต.ย. การคำนวนโดยหยุดนับตอนพักเที่ยง 12:00 - 12:50 และ 15:00-15:15 **/

DECLARE 
  @now = {{:ServerLocalTime}};
  @nowTS = @now - bday(@now);
  @tpm = 1; /** เป้าหมายต่อนาที  **/
BEGIN 
  
  /** ------ คำนวนเวลาที่ทำงานตามระยะเวลาที่ดำเนินไป ------- **/
     /** 8โมงถึงเที่ยง**/
  IF @nowTS >= totimespan("8:00:00") && @nowTS < totimespan("12:00:00")
  THEN SET @@= totalminutes(@nowTS - totimespan("8:00:00"));

  /** พักเที่ยง **/
  ELSEIF @nowTS >= totimespan("12:00:00") && @nowTS < totimespan("12:50:00")
  THEN SET @@= 240;

  /** 12:50 - 15:00  **/
  ELSEIF @nowTS >= totimespan("12:50:00") && @nowTS < totimespan("15:00:00")
  THEN SET @@= 240 + totalminutes(@now - (bday(@now) +totimespan("12:50:00")));

  /**พัก 15:00 - 15:15 **/
  ELSEIF @nowTS >= totimespan("15:00:00") && @nowTS < totimespan("15:15:00")
  THEN SET @@= 370 ;

  /**พัก 15:15 - เที่ยงคืน **/
  ELSEIF @nowTS >= totimespan("15:15:00") && @nowTS < totimespan("24:00:00")
  THEN SET @@= 370 + totalminutes(@now - (bday(@now) +totimespan("15:15:00")));


  /** เที่ยงคืนถึงก่อนแปดโมง **/
  ELSEIF @nowTS >= totimespan("0:00:00") && @nowTS < totimespan("8:00:00")
  THEN SET @@= 895 + totalminutes(@nowTS);
  
  /** ผลลัพธ์ TARGET ที่คำนวนได้ ณ ขณะนี้ **/
  SET @@ = @@ * @tpm;

END

กรณีมี OT หลากหลายแบบที่จำเป็นต้องรอการวางแผนแล้วกำหนดว่าจะมีOTกี่ชมกี่นาทีซึ่งแต่ละวันอาจจะไม่เหมือนกันเราจะคำนวนTargetอย่างไร?

ในกรณีที่มีOTจะทำให้เวลาการหยุดทำงานในวันที่มี OTแตกต่างจากปกติและยิ่งมีOTที่แตกต่างกันบางวัน3ชั่วโมง บางวัน2ชัวโมง บางวันเป็นOTในวันหยุด เป็นต้น เราสามารถใช้ฟีเจอร์Value SetsของGENESIS64จัดการได้ด้วยการสร้างการคำนวนTargetหลายแบบตามจำนวนOTรวมทั้งวันปกติที่มีอยู่ แล้วใช้Value SetsเลือกGlobal Expressionที่เราสร้างไว้หลายแบบ ว่าจะใช้การคำนวนแบบไหนก็จะได้Real-Time Targetตามที่ต้องการนั่นเอง และถ้าต้องการเซตค่าอัตโนมัติไว้ล่วงหน้าว่าช่วงเวลาไหนใช้Target Expressionแบบไหนก็สามารถใช้ValueSetsใน ScheduleWorXกำหนดค่าแทนValue Setsปกติได้

ซื้อ OPC / SCADA ที่ www.eda.co.th และ www.edagroups.com

Advertisement
This entry was posted in Uncategorized and tagged , , . Bookmark the permalink.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s