Home ICONICS (SCADA)
GENESIS32 Tips : ตัดคำใน OPC Tag PDF Print E-mail
Monday, 17 January 2011 15:28

กรณีที่อุปกรณ์ส่งสัญญาณเป็น Ascii Serial ธรรมดาและเราไม่มี OPC Server เราสามารถใช้ UCON OPC Server ติดต่อมาได้แล้ว บางครั้งอุปกรณ์ใช้คำสั่่งอ่านข้อมูลเพียงคำสั่งเดียวแต่ให้ค่าข้อมูลทุกประเภทออกมาทั้งหมด ซึ่งเราสามารถมาทำการกำหนดการตัดคำได้ใน GENESIS32

 

ใน GENESIS32 มีฟังก์ชั่นการตัดคำเรียกใช้ได้จาก Expression มีประโยชน์คือทำให้เราไม่เปลืองOPC tag เพราะใช้เพียง 1 tag แล้วมาตัดค่าพารามิเตอร์ที่ต้องการได้ใน Expression ต่อไปนี้เป็นตัวอย่างฟังก์ชั่น String ที่ใช้ในการตัดตัวอักษรใน Expression

 

image

รูปที่ 1 ฟังก์ชั่นในกลุ่ม String

 

String Function    Description


like(StringSource,StringCompare,BooleanMatchCase)    เปรียบเทียบคำ

 

len(String)    หาค่าความยาวคำ

 

substring(String,StartPos,Length)    ตัดคำโดยระบุตำแหน่งเริ่มต้นและความยาว


replace(StringSource,StringFindWhat,StringReplaceWith)    แทนที่กลุ่มคำที่เราต้องการใน"StringFindWhat" จาก"StringSource"  ด้วยคำที่จะเอาไปแทนที่ ("StringReplaceWith")


left(String,Length)    ตัดเอาเฉพาะด้านซ้ายมาโโยระบุความยาว

right(String,Length)    ตัดเอาเฉพาะด้านขวาโดยระบุความยาว


concat(String1,String2)    รวมคำสองกลุ่มเข้าด้วยกัน

 

IndexOf(StringToSearch,StringToFind,StartIndex)   หาตำแหน่งคำ StringToFind ในกลุ่มคำ StringToSearch โดยระบุตำแหน่งค้นหาเริ่มต้น (เริ่มที่ 1)

 

trim(StringToTrim,CharactersToRemove)    เอาคำหรือตัวอักษรที่ระบุใน "CharactersToRemove" ออกจากคำทั้งหมดของ "StringToTrim"ฃ


trimleft(StringToTrim,CharactersToRemove)    เอาคำหรือตัวอักษรที่ระบุใน "CharactersToRemove" ออกจากด้านซ้ายของคำในกลุ่ม "StringToTrim"


trimright(StringToTrim,CharactersToRemove)    เอาคำหรือตัวอักษรที่ระบุใน "CharactersToRemove" ออกจากด้านขวาของคำในกลุ่ม "StringToTrim"


tolower(String)    แปลงเป็นอักษรตัวเล็ก

toupper(String)    แปลงเป็นอักษรตัวใหญ่

tostring(Number)    แปลงตัวเลขเป็นอักษร

asciitochar(Number)    แปลง ASCII เป็นอักษร โดยแบ่งเป็นกลุ่มละ 4 ASCII Character ต่อตัว


chartoascii(Number)    แปลงตัวอักษรเป็น ASCII

asciitowchar(String)   แปลงค่า Double byte unicode code เป็นตัวอักษรแบบ WChar

wchartoascii(String)    แปลง WChar เป็น ASCII

 

Examples

len    String length   

x=len("Hello World")   >>  11


substring    Substring extraction   

x=substring("HelloWorld",0,5)    >> Hello


replace    Substring replacement   

x=replace("Statusbusy","busy","ready")    >> Status ready


left    Left substring   

x=left("Hello World",5)    >> Hello


right    Right substring   

x=right("Hello World",5)   >>  World

concat    String concatenation   

x=concat("Hello ", "World")    >> Hello World


IndexOf    String search   

x=indexof("HelloWorld","World",0)  >>  6


trim    Trim left and right   

x=trim("Hello World","Hdl")  >>   ello Wor


trimleft    Trim left   

x=trimleft("HelloWorld","Hdl")  >>  ello World


trimright    Trim right   

x=trimright("HelloWorld","Hdl")  >>  Hello Wor


tolower    Lower case cast   

x=tolower("HelloWorld","Hdl")   >>  hello world


toupper    Upper case conversion 

  x=toupper("HelloWorld","Hdl")   >>  HELLO WORLD


asciitochar    Converts a sequence of single byte ascii code into a string up to four characters long   

x=asciitochar(97)  >>  a


 chartoascii    Dual of asciitochar  

chartoascii("a")   >> 97


asciitowchar    Converts a sequence of double byte unicode code into a string up to two characters long   

asciitowchar(1055)  >>  Ï


wchartoascii    dual of asciitowchar   

wchartoascii("Ï")  >>  1055

ตัวอย่างการนำไปใช้

เช่น เมื่อเราได้ค่าพารามิเตอร์ออกมาจาก Controller เช่น

 

mm/dd/yyy, hh:mm, 1, 2, 50, 33, xxxxccc

 

และเราต้องการค่าที่อยู่หลังวันที่และเวลา ซึ่งก็คือค่าตัวเลขซึ่งในที่นี้คือ 1 เราก็สร้าง Expression หรือ Global Expression (ซึ่ง Global Expression สร้างได้ใน Unified Data Manager และนำไปใช้งานได้หลาย ๆ ที่โดยไม่ต้องสร้างใหม่) ขึ้นมาดังนี้

 

x = substring("mm/dd/yyy, hh:mm, 1, 2, 50, 33, xxxxccc",17,2)

ซึ่งหมายถึงค้นหาเริ่มที่ตำแหน่ง 17 และตัดคำมา 2 ตัว

 

ก็จะได้ค่าตัวเลขหลังกลุ่มวันที่ mm/dd/yyy และเวลา hh:mm ซึ่งก็คือค่า 1

ทั้งนี้ท่านสามารทดสอบโดย Copy Expression ด้านบนไปใช้ใน Process point ได้เลย

 
**สงวนลิขสิทธิ์ทั้งหมด โดย EDA International LTD.
สงวนลิขสิทธิ์ทั้งหมด ทุกข้อความ รูปภาพ งานกราฟฟิค และภาพเคลื่อนไหว ที่ปรากฎอยู่บนหน้าเว็บไซต์ อยู่ภายใต้การสงวนลิขสิทธิ์และได้รับการคุ้มครองตามกฎหมาย ไม่อนุญาต ให้ทำซ้ำ คัดลอก ดัดแปลง ส่วนหนึ่งส่วนใดหรือทั้งหมด โดยมิได้รับอนุญาตเป็นลายลักษณ์อักษรจากบริษัทฯ