วันพุธที่ 26 เมษายน พ.ศ. 2560

การแปลงสัญญาณ A/D และ D/A

การแปลงสัญญาณ A/D และ D/A


การสื่อสารข้อมูลด้วยคอมพิวเตอร์ สามารถสื่อสารข้อมูลได้ทุกประเภท ประกอบด้วย เสียง (Voice) อักขระข้อความ (Text), ภาพ (Image) และข้อมูลคอมพิวเตอร์ (Data) ซึ่งแต่ละข้อมูล มีลักษณะเฉพาะของสัญญาณที่แตกต่างกัน แบ่งการกระทำของข้อมูลดังนี้
1. Analog Computer
สัญญาณอนาลอกคือ สัญญาณข้อมูลแบบต่อเนื่อง (Continuouse Data) มีขนาดของสัญญาณไม่คงที่ การเปลี่ยนแปลงขนาดของสัญญาณแบบค่อยเป็นค่อยไปแปรผันตามเวลา เป็นสัญญาณที่มนุษย์สามารถสัมผัสได้ เช่น แรงดันของน้ำ
2.Digital Computer
สัญญาณดิจิตัล คือ สัญญาณข้อมูลแบบไม่ต่อเนื่อง (Discrete Data) มีขนาดของสัญญาณคงที่ การเปลี่ยนแปลงขนาดของสัญญาณเป็นแบบทันที ทันใด ไม่แปรผันตามเวลา เป็นสัญญาณที่มนุษย์ไม่สามารถสัมผัสได้ เช่น สัญญาณไฟฟ้า

ความสัมพันธ์ของสัญญาณอะนาลอก ดิจิตอล และตัวแปลงสัญญาณ

สัญญาอะนาลอก (Analog) และสัญญาณดิจิตอล (Digital)ทั้งสองสัญญาณ เกี่ยวข้องกับตัวแปลงสัญญาณ (Transducer)การเชื่อมต่อระบบอนาลอกเข้าสู่ระบบคอมพิวเตอร์ จะต้องมีตัวกลางใน การแปลงเปลี่ยนจากAnalogให้เป็นสัญญาณทางอิเล็กทรอนิกส์ เรียกว่า“ทรานส์ดิวเซอร์”(Transducer) การแปลงสัญญาณกลับไปกลับมาระหว่างสัญญาณ Analog และ Digital อาศัย "ตัวเปลี่ยนสัญญาณข้อมูล Converter"
การแปลงสัญญาณมี 2 วิธีคือ
  1. การแปลงสัญญาณอนาลอกเป็นสัญญาณดิจิตอล
  2. การแปลงสัญญาณดิจิตอลเป็นสัญญาณอนาลอก

การแปลงสัญญาณอนาลอกเป็นสัญญาณดิจิตอล

Analog to Digital Converter (A/D)ทำหน้าที่แปลงสัญญาณข้อมูลที่ มนุษย์รับรู้ สัมผัสได้ เป็นข้อมูลทางไฟฟ้า เพื่อป้อนเข้าสู่การประมวลผล จึงเป็นขบวนการหนึ่งของการรับข้อมูล (Input Unit)เป็นกระบวนการอีเลคโทรนิคส์ ที่สัญญาแปรผันต่อเนื่อง (analog) ได้รับการแปลงให้เป็นสัญญาณดิจิตอล โดยไม่มีการลบข้อมูลสำคัญผลลัพธ์ของ ADC มีลักษณะตรงข้าม คือ กำหนดระดับหรือสถานะ ตัวเลขของสถานะมักจะเป็นการยกกำลังของ 2 คือ 2, 4, 8, 16 เป็นต้น สัญญาณดิจิตอลพื้นฐานมี 2 สถานะและเรียกว่า binary ตัวเลขทั้งหมดสามารถแสดงในรูปของไบนารี ในฐานะข้อความของ หนึ่งและศูนย์
วงจรที่ใช้ในการแปลงสัญญาณอนาลอกเป็นดิจิตอลมีมากมายหลายชนิด โดยทั่วไปแล้ววงจรแปลงสัญญาณอนาลอกเป็นดิจิตอล (A/D converters) มีใช้งานอยู่ประมาณ 7 ชนิดคือ
  1. Parallel Comparator, Simultaneous, หรือ Flash A/D converter
  2. Single – Ramp หรือ Single – Slope A/D converter
  3. Dual – Slope A/D converter
  4. Charge balance A/D converter
  5. A/D converters using Counters and D/A converters
  6. Tracking A/D converters
  7. Successive – Approximation A/D converters

Counting Converter

เป็นการแปลงสัญญาณอนาล็อก เป็นสัญญาณดิจิตอล โดยใช้อัลกอริทึม การนับค่าเพิ่มขึ้นเรื่อยๆ แล้วนำผลที่ได้จากการนับไปเปรียบเทียบกับค่าที่ต้องการที่ตั้งไว้ การแปลงสัญญาณอนาล็อก เป็นสัญญาณดิจิตอล มีประโยชน์มากในการควบคุมอุปกรณ์สวิตชิ่ง ซึ่งมีลักษณะการแปลงสัญญาณได้หลายวิธี แต่ละวิธีจะมีอัลกอริทึม ความรวดเร็วในการทำงาน และการใช้อุปกรณ์ฮาร์ดแวร์ต่างกันด้วย

ข้อบ่งเฉพาะของการแปลงสัญญาณ A/D (A/D SPECIFICATIONS)

ข้อบ่งเฉพาะจะบอกถึงขีดความสามารถของ converter โดยทั่วไปแล้วจะมีอยู่หลายคำ เช่น ความแม่นยำ,ความเที่ยงตรง และความเที่ยงตรงเป็นเส้นตรง ซึ่งค่าเหล่านี้จะขึ้นอยู่กับลักษณะของแต่ละวงจร แต่มีข้อบ่งเฉพาะอีกข้อหนึ่งที่ไม่ขึ้นอยู่กับลักษณะของวงจรคือ ค่าผิดพลาดระหว่างค่าจริงของสัญญาณอะนาลอก กับค่าของดิจิตอลที่ใช้แทนค่า (ค่าของ Output ของ A/D converter) ซึ่งเรียกว่า Quantizing error จะมีค่าอยู่ประมาณ +1/2 digit ต่ำสุด (LSB)ของการแปลงสัญญาณซึ่งก็เป็นการบ่งถึงความแม่นยำได้อีกทางหนึ่งด้วยค่า พารามิเตอร์ที่สำคัญอีกตัวหนึ่งสำหรับ A/D converter คือ conversiontime หรือค่าเวลาสำหรับการแปลงสัญญาณ ซึ่งมีช่วงเวลาอยู่ประมาณ 10-9 วินาที ถึง 10-3 วินาที ซึ่งขึ้นอยู่กับชนิดของconverterและจำนวน bit

การแปลงสัญญาณดิจิตอลเป็นสัญญาณอนาลอก

Digital to Analog Converter (D/A) ทำหน้าที่แปลงข้อมูลผลลัพธ์จากการประมวลผลเป็นสัญญาณไฟฟ้า ให้เป็นสัญญาณที่มนุษย์รับรู้ได้ สัมผัสได้ เป็นการแสดงผลข้อมูล (Output Unit)digital-to-analog conversion เป็นกระบวนการซึ่งสัญญาณมีการกำหนดระดับ หรือสถานะจำนวนหนึ่ง ( ปกติ คือ 2 สถานะ) หรือสัญญาณดิจิตอล ให้เป็นสัญญาณที่ไม่จำกัดจำนวนของสถานะ หรือสัญญาณอนาลอก ตัวอย่าง กระบวนการของโมเด็มในการแปลงข้อมูลคอมพิวเตอร์ เป็นความถี่เสียง ให้สามารถส่งผ่านสายโทรศัพท์ twisted pair ในวงจรที่ทำงานให้กับฟังก์ชันนี้ เรียกว่า digital-to-analog converter (DAC) โดยพื้นฐาน digital-to-analog conversion ตรงข้ามกับ analog-to-analog conversion ถ้า analog-to-analog converter (ADC) วางอยู่ในวงจรการสื่อสารต่อจาก DAC สัญญาณดิจิตอลส่งออก จะตรงกับสัญญาณดิจิตอลนำเข้า ในกรณีที่ DAC วางอยู่ในวงจรต่อจาก ADC สัญญาณอะนาล๊อกส่งออกจะเป็นตรงกับสัญญาณอะนาล๊อกนำเข้าสัญญาณดิจิตอล แบบ binary จะปรากฏเป็นข้อความขนาดยาว ของ 1 และ 0 ซึ่งจะไม่มีความหมายต่อการอ่าน แต่เมื่อ DAC ใช้ถอดรหัสสัญญาณดิจิตอลแบบ binary จึงปรากฏผลลัพธ์ที่มีความหมาย ซึ่งอาจจะเป็น เสียง ภาพ เสียงดนตรี และกลไกการเคลื่อน
วงจรแปลงสัญญาณดิจิตอลเป็นสัญญาณอนาลอกมี 2 ลักษณะดังนี้

1.แบบรวมกระแส (weighted -resistor)

คุณลักษณะของ D/A แบบรวมกระแส
  1. จะต้องมีตัวต้านทานทุกอินพุทของสัญญาณดิจิตอล
  2. ตัวต้านทานนี้อินพุทของทุกบิทจะมีค่าเท่ากับเอาต์พุตของระดับดิจิตอลสูงสุด
  3. แรงเคลื่อนที่เอาต์พุตเต็มสเกลจะมีค่าเท่ากับเอาต์พุตของระดับดิจิตอลสูงสุด
  4. LSB จะมีน้ำหนักเป็น1/(2n-1) เมื่อ n เป็นจำนวนบิทที่อินพุท
  5. เมื่อ LSB เปลี่ยนแปลงแรงเคลื่อนไฟฟ้าที่เอาต์พุตจะเปลี่ยนไป 1/(2n-1) เมื่อ V เป็นระดับสัญญาณดิจิตอล

2.โครงข่ายแบบ R-2R (R-2R network)


การ Convert ค่าจากดิจิตอลเป็นอนาล็อกนั้น สามารถใช้ integrated circuit แปลงได้ แต่ถ้าหากคำนึงถึงเรื่องcostด้วยแล้ว วงจรที่สามารถทำได้และราคาถูกกว่าก็คือ R/2R Network นั่นเอง ซึ่งใช้ op-amp เป็นตัวควบคุมR/2R Network ทำได้จากการนำต่อต้านทานมาต่อดังรูป แต่ละบิตทั้งที่มีค่าเป็น 0 หรือที่เป็น operating voltage นั้นเป็นค่าที่อยู่ในวงจรของตัวต้านทานที่มีค่าเป็น 2 เท่าของrest network ซึ่งแต่ละบิตจะแสดงผลลัพธ์ออกเป็นoutput นั่นเอง จะเชื่อหรือไม่เชื่อว่าNetwork นี้ทำงานได้จริง ใช้เป็น Digital-to-Analog-Converters โดยใช้แค่เพียงตัวต้านทานต่อกันเป็นเครือข่ายตามรูป โดยไม่จำเป็นต้องใช้วงจรรวม integrated circuits แม้แต่วงจรเดียว 
Output จาก AVR port มีค่ากระแสไม่มากนัก เมื่อค่าความต่างศักย์ของมันควรจะมีค่าใกล้ๆศูนย์หรือพอกับ operating voltage ดังนั้นตัวต้านทานจึงควรมีค่าราวๆ 10กิโลโอห์ม เพราะจะทำให้วงจรไม่มีค่ากระแสมากเกินไปนั้นเอง และตัวop-amp เองก็สามารถทำงานกับวงจร R/2R Network ได้
R/2R Network and Buffer 


CA3140 เป็น Op-amp ที่มี FET stage เป็น input ซึ่งสามารถทำงานได้โดยค่าโวลต์ที่เป็นลบ หรือที่เรียกว่า Negative operating voltage นั่นเอง การทำงานของ CA3140นั้น ทำงานที่ค่าความต่างศักย์เป็น 5 โวลต์จาก 10-pin-connector ซึ่งConnector นี้ใช้กับboard STK200 หรือ STK500 ในที่จริงแล้วเราสามารถป้อนค่าความต่างศักย์ที่สูงกว่า 2 โวลต์ได้เช่นกัน โดยการใช้ตัวต้านทาน2ตัว ต่อขนานกันซึ่งจะได้ค่าประมาณครึ่งหนึ่งของ 100 k อาจจะเป็น 51k หรือมากกว่าหรือน้อยกว่าก็ได้ ซึ่งจะทำให้วงจรมี resolution เป็น 256 ซึ่งวงจรที่ได้ เป็นดังภาพด้านบน

ที่มา http://th.wikipedia.org

http://www.avr-asm-tutorial.net/avr_en/AVR_DAC.html

วันอังคารที่ 11 เมษายน พ.ศ. 2560

M-Bus (Meter-Bus)

M-Bus (Meter-Bus) เป็น มาตรฐานยุโรป (EN 13757-2 physical layer และ layer เชื่อมโยง EN 13757-3 application layer) สำหรับการอ่านค่า ก๊าซ หรือ ไฟฟ้า จากระยะไกล M-Bus ใช้สำหรับเครื่องวัดการบริโภคประเภทอื่น ๆ ด้วย อินเทอร์เฟซสำหรับ M-Bus ทำขึ้นเพื่อการสื่อสารกับสายไฟสองเส้นทำให้ประหยัดค่าใช้จ่ายมาก รูปแบบวิทยุของ M-Bus ( Wireless M-Bus ) ยังระบุไว้ใน EN 13757-4
M-Bus ได้รับการพัฒนาขึ้นเพื่อเติมเต็มความต้องการระบบการเชื่อมต่อเครือข่ายและ การอ่านมิเตอร์ยูทิลิตี้ระยะไกลเช่นเพื่อวัดการใช้ก๊าซหรือน้ำในบ้าน รถบัสนี้ตอบสนองความต้องการพิเศษของระบบที่ขับเคลื่อนด้วยพลังงานจากระยะไกล หรือแบตเตอรี่ซึ่งรวมถึงมาตรวัดความสิ้นเปลืองของผู้บริโภค เมื่อสอบสวนเมตรจะส่งข้อมูลที่เก็บรวบรวมไว้ไปยังโทที่ใช้ร่วมกันเช่น คอมพิวเตอร์มือถือเชื่อมต่อเป็นระยะ ๆ เพื่ออ่านมิเตอร์ไฟฟ้าทั้งหมดของอาคาร วิธีอื่นในการรวบรวมข้อมูลจากส่วนกลางคือการส่งการอ่านค่ามิเตอร์จาก โมเด็ม
โปรแกรมอื่น ๆ สำหรับ M-Bus เช่นระบบเตือนภัยการติดตั้งไฟส่องสว่างแบบยืดหยุ่นการควบคุมความร้อนเป็นต้นเหมาะ

วันอาทิตย์ที่ 9 เมษายน พ.ศ. 2560

Line Monitor IEC61850

Line Monitor IEC61850

ถ้าจะกล่าวถึง protocol ที่ใช้กันในระบบ SCADA หลายคนคงนึกถึง DNP3, IEC60870-5-101, IEC60870-5-103, IEC60870-5-104 และ ใหม่ที่สุดคือ IEC61850.  เนื่องจาก IEC61850 เ้้ป็น protocol ที่วิ่งอยู่บน network ฉะนั้นการทำ line monitor จำป็นต้องใช้อุปกรณ์ที่เรียกว่า HUB ขอเน้นว่า HUB ครับ เป็นอะไรที่เก่าไม่มีใครใช้กันแล้วแต่มีประโยชน์นะครับ เข้าใจว่าน่าจะหาซื้อของใหม่ไม่ได้แล้ว ทีพอมีก็น่าจะเป็นของเก่าค้างสต๊อก หรือไม่ก็เป็นของมือสอง หรือ ถ้าเป็น SWITCH จะต้องเป็นรุ่นที่สามารถทำ port mirroring ได้ครับ และที่สำคัญที่สุดก็คือ software ซึ่งมีทั้งแบบที่ไม่ฟรี และ แบบที่ให้ใช้ฟรีๆ ครับ. แบบไม่ฟรีคงไม่ต้องพูดถึง ส่วนแบบที่ฟรีที่ผมรู้จักมีสองแบบนะครับคือแบบที่ปรับปรุงมาจาก WireShark กับแบบที่ปรับปรุงมาจาก Ethereal ครับ

An Open Source Ethernet Analyzer based on WireShark for IEC61850 (8-1, 9-2, GOOSE), IEC60870-6 TASE.2 (ICCP), MMS, and UCA2

An Open Source Ethernet Analyzer based on Ethereal for IEC61850 (8-1, 9-2, GOOSE, GSSE), IEC60870-6 TASE.2 (ICCP), MMS, UCA2, and IEEE C.37-118


ครับลองโหลดไปใช้กันดูนะครับ
รูปร่างหน้าตาก็ประมาณนี้ครับ



ปล. ถ้ารู้จัก software อื่่นที่ดีกว่านี้ก็เอามาแบ่งปันกันบ้างก็ดีนะ

IDMT / ตารางคำนวน Tripping Time ของ OverCurrent Relay

IDMT / ตารางคำนวน Tripping Time ของ OverCurrent Relay


วันนี้เอาตารางคำนวนเวลาในการทำงานของรีเลย์กระแสเกินมาฝาก (IDMT Tripping Time). เมื่อก่อนผมทำแต่ระบบ SCADA ไม่เคยสนใจว่า รีเลย์จะทริปช้า หรือ เร็ว สิ่งที่ผมสนใจก็คือรีเลย์ทริปแล้วระบบ SCADA เห็น Fault ตรงกันกับที่ตัวลีเลย์เท่านั้นจบ :)
วิธีทำให้รีเลย์ทริปก็ไม่ยุ่งยากแค่ป้อนกระแสให้เกินค่า Setting ก็พอ หรือจะให้ง่ายกว่านั้นคือไม่ต้องสนใจค่า Setting แค่ป้อนกระแสให้เกิน CT แค่นี้ก็ทริปแล้ว.

มาในระยะหลังนี่การทำให้รีเลย์ทริปแค่นั้นมันดูเหมือนจะไม่พอ เมื่อวันนึงผมโดนหลอกให้ไปทดสอบรีเลย์ตอนแรกตั้งใจป้อนกระแสให้เกินค่า Setting ให้ทริปอย่างเดียวพอ แต่ดันไปเจอพี่ที่ตรวจรับต้องการให้จับเวลาด้วยว่าถูกต้องหรือเปล่า ผมเองก็มีความรู้เรื่องรีเลย์อยู่บ้างก็เลยจัดการ set รีเลย์เป็น Definite time ซะแล้วก็เทสปรากฎว่าคุณพี่ท่านก็ไม่ยอม ต้องการให้ทดสอบตาม Curve IDMT !!! เงิบเลย ผมไม่รู้ครับว่ามันคืออะไร??? สุดท้ายต้องกลับมาทำการบ้านหาข้อมูลแล้วก็ทำตาราง IDMT นี่ขึ้นมา



ใช้งานง่ายๆ ดังนี้
1. เลือก Curve (NI, VI หรือ EI)
2. กรอกค่า TMS (Time Multiple Setting)
3. กรอกค่า Ip (Pickup Current)

Download IDMT Table

DNP 3.0 คืออะไร


DNP 3.0 คืออะไร


DNP 3.0 (Distributed Network Protocol) คือการสื่อสารระหว่างอุปกรณ์และซอร์ฟแวร์ใน Process Automation อีกแบบหนึ่ง โดยส่งข้อมูลมาเป็นแบบ Layer ใน Layer หนึ่ง ๆ ที่ส่งมาตามช่วงเวลาก็จะมีค่าข้อมูลในแต่ละ Layer ที่แตกต่างกัน มีข้อมูลที่ส่งมามากกว่า Modus และมีรูปแบบโครงสร้างที่ซับซ้อนกว่าเพื่อให้นำข้อมูลและควบคุมได้ซับซ้อนขึ้น แรกเริ่มนิยมใช้ในงานไฟฟ้าและประปา


รูปที่ 1 โครงสร้างระบบ SCADA

เพื่อสร้างระบบ SCADA สำหรับตรวจสอบและควบคุมสถานีไฟฟ้าและสถานีสูบน้ำต่าง ๆ มีความสามารถในการบริการข้อมูลจากอุปกรณ์ DNP ได้จำนวนมากถึง 65,000 Addess ต่อหนึ่งลิงค์

รายละเอียดที่ท่านสามารถค้นหาได้เกี่ยวกับ DNP 3.0 โปรดดูจาก URL ด้านล่าง

- Overview

- Feature

- ประโยชน์

ปัจจุบันหากท่านต้องการติดต่อ DNP 3.0 Device กับ SCADA ผ่าน OPC Server ท่านก็สามารถทำได้ โดยค่ายผู้ผลิตหนึ่งก็คือ Kepware ก็มี OPC Driver สำหรับ DNP 3.0 เช่นกัน

วันอังคารที่ 28 มีนาคม พ.ศ. 2560

เรียนรูระบบ DCS (Distributed Control System)

ระบบ DCS (Distributed Control System) เบื้องต้น
             ระบบDCS(Distributed Control System)คือ ระบบควบคุม(Control)และเฝ้าดู(monitor)ที่ใหญ่ที่สุดเมื่อเทียบกับระบบควบ คุมทั้งหมดและใช้กันอย่างแพร่หลายที่สุดในอุตสาหกรรมขนาดใหญ่เช่น โรงกลั่นน้ำมัน แท่นขุดเจาะน้ำมันและก๊าส อุตสาหกรรมปิโตรเคมีและเคมิคอลทั้งหลาย ทั้งนี้ระบบDCSยังมีให้เลือกใช้หลายยี่ห้อด้วยกัน เช่น Honeywell Yokogawa Siemens Emerson ABB เป็นต้น และระบบDCS นั้นยังมีความเสถียรและแม่นยำค่อนข้างสูงมาก จึงเป็นที่นิยมในอุตสาหกรรมที่มีความเสี่ยงสูงเช่น อุตสาหกรรมปิโตรเคมีเป็นต้น ดังนั้นไม่ต้องสงสัยเลยว่าทำไมระบบDCSนั้นถึงมีราคาค่อนข้างแพง

ตัวอย่างของระบบ DCS ของ Honeywell ข้อดีของระบบ DCS (Distributed Control System)
1.สามารถควบคุมกระบวนการผลิตต่างๆได้จากหน้าจอคอมพิวเตอร์ ซึ่งจะช่วยทำให้ลดเวลาและมีประสิทธิภาพมากกว่าการใช้แรงงานคนหลายเท่าตัว
2.สามารถ เชื่อมต่ออุปกรณ์การวัดและควบคุม เช่น เครื่องวัดอุณหภูมิ(Temp Transmitter) เครื่องวัดแรงดัน(Pressure Transmitter) เครื่องวัดระดับของเหลว(Level Transmitter) เครื่องวัดระดับการไหล(Flow Transmitter) คอนโทรลวาล์ว ปั้มป์ หรือมอเตอร์เป็นต้น
3.สามารถ มีการเชื่อมต่อกับระบบอื่นๆเช่น PLC FSC เป็นต้น และยังสามารถควบคุมหรือMonitorระยะไกล(SCADA)ผ่านNetwokชนิดต่างๆ เช่นWireless หรือดาวเทียมได้อีกด้วย
4.สามารถแจ้งเตือนทั้งบนหน้าจอคอมพิวเตอร์และสัญญาณเสียงเมื่อมีความผิดปกติของกระบวนการผลิตเกิดขึ้น
5.ระบบDCS ยังมีฟังก์ชั่นเก็บข้อมูล(History) เพื่อให้สามารถย้อนกลับไปดูข้อมูล(Trend)ต่างๆของกระบวนการผลิตในอดีตที่มา และนำไปปรับปรุงกระบวนการผลิตในอนาคตได้ ข้อเสียของระบบ DCS (Distributed Control System)

1.ระบบDCSเป็นระบบที่ค่อนข้างใหญ่และมีความซับซ้อนจึงจำเป็นต้องใช้ผู้เชี่ยวชาญเท่านั้นในการตรวจสอบเมื่อระบบเกิดปัญหา
2.อะไหล่(Part)ของDCS Controller ต้องนำเข้าจากต่างประเทศเท่านั้นจึงอาจใช้เวลาในการสั่งซื้อ แต่ผู้ใช้ส่วนใหญ่จะสั่งซื้อมาเก็บไว้เป็นSpareไว้ล่วงหน้า
3.ระบบDCS มีราคาค่อนข้างแพง
ส่วนประกอบหลักของระบบDCS(Distributed Control System)

ส่วนประกอบหลักของระบบDCSมีอยู่ 4 ส่วนดังต่อไปนี้
DCS Servers
DCS Stations
Networks/LAN (Fault Tolerant Ethernet)
Controllers




DCS Architecture DCS ServerServer ในระบบDCSนั้นสามารถเป็นได้ทั้งแบบเดี่ยว(Single Server)และแบบคู่(RedundancyServer)ซึ่งส่วนใหญ่จะเป็นแบบหลังเพราะถ้า มีServerตัวใดตัวนึงเสียหรือหยุดการทำงาน Serverอีกตัวก็จะขึ้นมาทำงานแทนในทันทีและจะทำให้กระบวนการผลิตนั้นไม่หยุด ชะงักหรือสร้างความเสียหายให้กับกระบวนการผลิตได้ ซึ่งหน้าที่หลักของServerจะมีดังต่อไปนี้.

Server เป็นศูนย์กลางการเชื่อมต่อระหว่าง Controller กับ Station.
Server เป็นตัวเก็บฐานข้อมูล(Database) และข้อมูลย้อนหลัง(History)
Server เป็นศูนย์กลางการออกแบบกระบวนการผลิต(Engineering)ก่อนที่จะส่งต่อ(Download)ไปยัง Controller
Server ยังป็นศูนย์กลางการเชื่อมต่อระหว่าง DCS กับระบบอื่นๆเช่น ระบบSCADA หรือ OPC เป็นต้น



Redundancy ServerDCS ControllerController ถือเป็นส่วนสำคัญที่สุดของระบบDCS เพราะเป็นตัวที่เชื่อมต่อโดยตรงกับเครื่องวัดหรืออุปกรณ์(Device)ในกระบวน การผลิต นอกจากนี้Controllerยังถือเป็นสมองของระบบDCSเลยก็ว่าได้เพราะมีCPU Processorที่ทำหน้าRunning Programmingที่รับมาจากServerนั่นเอง Controllerนั้นมีมากมาหลายรุ่นและหลายยี่ห้อ การเลือกใช้ก็ขึ้นอยู่กับลักษณะการใช้งาน ในตัวอย่างก็จะเป็นของHoneywell รุ่นC200 และC300

Honeywell รุ่นC200
Fault Tolerant Ethernet (FTE)
ระบบการเชื่อมต่อ(Communications networks) จะมีลักษณะเหมือนกับระบบLANทั่วไป(standard Ethernet) แต่ที่แตกต่างก็คือสายLAN(LAN Cable)ที่เชื่อมต่อจะมี 2 เส้น(Redundancy)เพื่อป้องกันการLoss Connectionเมื่อมีการขาดหรือชำรุดของสายLANเส้นใดเส้นนึง





ตัวอย่าง FTE Network DCS StationsDCS Station คือ เครื่องคอมพิวเตอร์(PC)ที่รับข้อมูลจากServerให้ผุ้ควบคุมดูแลการ ผลิต(Operator)นั้นใช้ในการเฝ้าดู(Monitoring)และควบคุม(Control)กระบวนการ ผลิตทั้งหมด ทั่งนี้DCS Station สามารถมีได้มากกว่า 1 เครื่อง ขึ้นอยู่กับความเหมาะสม
1 DCS Station มีAccessoriesดังนี้:

Display Monitorมีได้ถึง1-4 Display



คีย์บอร์ด(Standard PC keyboard)


คีร์บอร์ดเฉพาะทาง(Special operator keyboard)



Pointing device such as a mouse, track ball, touch pad, etc.



DCS Graphic
DCS Graphic เป็นSoftwareบนDCS Station สำหรับช่วยให้ผู้ควบคุมการผลิต(Operator)สามารถควบคุมระบบการผลิตได้ง่าย ยิ่งขึ้น เพราะGraphicเป็นโปรแกรมที่จำลองรูปแบบกระบวนการผลิตออกมาเป็นรูปถาพเสมือน จริงซึ่งมีตัวอย่างดังต่อไปนี้


ตัวอย่างGraphicแบบMulti Window


ตัวอย่างGraphicแบบSingle Window
DCS Trend
DCS Trend คือSoftware Programที่ติดตั้งอยู่บนServerและStation ใช้สำหรับเรียกดูค่าการวัดและควบคุมออกมาในลักษณะProcess Line หรือ Trend ซึ่งทำให้ง่ายต่อการวิเคราะห์ระบบการผลิตเพื่อพัฒนาระบบการผลิตหรือ วิเคราะห์หาสาเหตุเมื่อเกิดปัญหา



ตัวอย่าง DCS Trend
DCS Events
DCS Event คือSoftware Programที่ติดตั้งอยู่บนServerและStationใช้สำหรับบัญทึกเหตุการทั้งหมดที่ เกิดขึ้นกับระบบ(System)และกระบวนการผลิต(Process) ซึ่งช่วยให้สามารถวิเคราะห์หาสาเหตุเมื่อระบบเกิดขัดข้องหรือมีปัญหาและยัง สามารถเก็บข้อมูลได้หลายปีขึ้นอยู่กับขนาดของMemory



ตัวอย่าง DCS Events


TCP(transfer control protocol) Socket Programming

           การสร้างลิงค์ติดต่อสื่อสารแบบ TCP/IP ที่เป็น sockets เป็นการเชื่อมต่อแบบ connection-orientated ซึ่งนั้นก็หมายความว่าการสนทนาระหว่างเครื่อง client กับ server จะทำการเชื่อมต่อตลอดเวลาที่สนทนานอกเสียจากมันจะเสีย ซึ่งการสนทนากันหรือการแลกเปลี่ยนข้อมูลระหว่าง client กับ server นั้นจะต้องเป็นไปตามกฎของ protocol 
          สำหรับตัวอย่างการติดต่อ TCP/IP  ที่เป็น sockets ผมจะให้
- โทรศัพท์มือถือ android ให้เป็น client 
- notebook เป็น server 

รูปแสดงไดอะแกรมแสดงการติดต่อสื่อสารกันระหว่าง client และ server ด้วย TCP Socket

รูปแสดงลำดับขั้นตอนในการติดต่อสื่อสารข้อมูล TCP Socket
Java Code
package com.tomkrub.app.simpleconnect;
import java.io.IOException;
import java.io.PrintWriter;
import java.net.Socket;
import java.net.UnknownHostException;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
import android.view.View;
import android.view.View.OnClickListener;

public class SimpleConnectActivity extends Activity {
    /** Called when the activity is first created. */
   
    private Button btnConnect;
    private EditText editIP;
    private EditText editPort;
   
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);     
                
        editIP = (EditText)findViewById(R.id.editIP);
        editPort = (EditText)findViewById(R.id.editPort);       
        btnConnect = (Button)findViewById(R.id.btnConnect);
       
        btnConnect.setOnClickListener(new OnClickListener()
                {    public void onClick(View v){   
                    connect(editIP.getText().toString(),Integer.parseInt(editPort.getText().toString()));
                 }
                });      
       
       // connectIP();
    }

   public void connect (String IP,int Port)
    {
        Socket clientSocket = null;
        try {
            //clientSocket = new Socket("localhost", 5000);//127.0.0.1
            clientSocket = new Socket(IP,Port);
           
            Toast.makeText(this, clientSocket.getInetAddress().toString(),
                    Toast.LENGTH_LONG).show();
            //clientSocket.close();
           
        } catch (UnknownHostException e) {
            // TODO Auto-generated catch block
             Toast.makeText(this, "UnknownHostException "+e,
                        Toast.LENGTH_LONG).show();
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
             Toast.makeText(this, "IOException "+e,
                        Toast.LENGTH_LONG).show();
            e.printStackTrace();
        }
                      
          PrintWriter outToServer = null;
        try {
            outToServer = new PrintWriter(clientSocket.getOutputStream(),true);
            outToServer.println ("test sentence na krub") ; //ประโยคที่ทำการส่งให้ server
            Toast.makeText(this, "test",Toast.LENGTH_LONG).show();
            clientSocket.close();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
                       
    }
   
}
   

Server  TCP chat program Download TCPChat.jar หรือ Gui.java 

ผลการทดลอง
ขณะรอการเชื่อมต่อจาก client

ป้อน IP กับ Port ของ Server พร้อมกด Connect

Server เชื่อมต่อกับ client พร้อมได้รับข้อมูล