วิดีโอ: คอนโซลผู้ดูแลระบบ Habr ช่วยให้คุณควบคุมกรรม ให้คะแนน และแบนผู้ใช้ได้
TL; DR: ในบทความนี้ ฉันจะพยายามสร้างแผงควบคุม Habr การ์ตูนโดยใช้สภาพแวดล้อมการพัฒนาอินเทอร์เฟซอุตสาหกรรม Webaccess/HMI Designer และเทอร์มินัล WebOP
Human-Machine Interface (HMI) คือชุดของระบบสำหรับการโต้ตอบระหว่างมนุษย์กับเครื่องจักรที่ถูกควบคุม โดยทั่วไปคำนี้จะนำไปใช้กับระบบอุตสาหกรรมที่มีผู้ปฏิบัติงานและแผงควบคุม
WebOP — เทอร์มินัลอุตสาหกรรมอัตโนมัติสำหรับการสร้างส่วนต่อประสานระหว่างมนุษย์กับเครื่องจักร ใช้เพื่อสร้างแผงควบคุมการผลิต ระบบตรวจสอบ ห้องควบคุม ตัวควบคุมบ้านอัจฉริยะ ฯลฯ รองรับการเชื่อมต่อโดยตรงกับอุปกรณ์อุตสาหกรรมและสามารถทำงานเป็นส่วนหนึ่งของระบบ SCADA ได้
เทอร์มินัล WebOP - ฮาร์ดแวร์
เทอร์มินัล WebOP เป็นคอมพิวเตอร์ที่ใช้พลังงานต่ำซึ่งใช้โปรเซสเซอร์ ARM ในกรณีเดียวพร้อมจอภาพและหน้าจอสัมผัส ซึ่งออกแบบมาเพื่อรันโปรแกรมด้วยอินเทอร์เฟซแบบกราฟิกที่สร้างใน HMI Designer จอเทอร์มินัลมีอินเทอร์เฟซอุตสาหกรรมต่างๆ บนบอร์ด ขึ้นอยู่กับรุ่น: RS-232/422/485, CAN บัสสำหรับเชื่อมต่อกับระบบยานยนต์, พอร์ตโฮสต์ USB สำหรับเชื่อมต่ออุปกรณ์ต่อพ่วงเพิ่มเติม, พอร์ตไคลเอ็นต์ USB สำหรับเชื่อมต่อเทอร์มินัลกับคอมพิวเตอร์, เสียง อินพุตและเอาต์พุตเสียง เครื่องอ่านการ์ด MicroSD สำหรับหน่วยความจำแบบไม่ลบเลือนและการถ่ายโอนการตั้งค่า
อุปกรณ์ดังกล่าวอยู่ในตำแหน่งทดแทนงบประมาณสำหรับพีซีออลอินวันสำหรับงานที่ไม่ต้องใช้โปรเซสเซอร์ที่ทรงพลังและทรัพยากรของคอมพิวเตอร์เดสก์ท็อปที่มีคุณสมบัติครบถ้วน WebOP สามารถทำงานเป็นเทอร์มินัลแบบสแตนด์อโลนสำหรับการควบคุมและอินพุต/เอาท์พุตข้อมูล จับคู่กับ WebOP อื่นๆ หรือเป็นส่วนหนึ่งของระบบ SCADA
เทอร์มินัล WebOP สามารถเชื่อมต่อกับอุปกรณ์อุตสาหกรรมได้โดยตรง
การระบายความร้อนแบบพาสซีฟและการป้องกัน IP66
เนื่องจากการกระจายความร้อนต่ำ WebOP บางรุ่นได้รับการออกแบบมาทั้งหมดโดยไม่มีระบบระบายความร้อนด้วยอากาศ ช่วยให้สามารถติดตั้งอุปกรณ์ในพื้นที่ที่ไวต่อระดับเสียง และลดปริมาณฝุ่นที่เข้าไปในตัวเครื่อง
แผงด้านหน้าไม่มีช่องว่างหรือรอยต่อ มีระดับการป้องกัน IP66 และช่วยให้น้ำไหลเข้าได้โดยตรงภายใต้แรงดัน
แผงด้านหลังของเทอร์มินัล WOP-3100T
หน่วยความจำไม่ลบเลือน
เพื่อป้องกันข้อมูลสูญหาย WebOP มีหน่วยความจำแบบไม่ลบเลือนขนาด 128KB ซึ่งสามารถทำงานในลักษณะเดียวกับ RAM สามารถจัดเก็บการอ่านค่ามิเตอร์และข้อมูลสำคัญอื่นๆ ได้ ในกรณีที่ไฟฟ้าขัดข้อง ข้อมูลจะถูกบันทึกและกู้คืนหลังจากการรีบูต
การอัปเดตระยะไกล
โปรแกรมที่ทำงานบนเทอร์มินัลสามารถอัปเดตจากระยะไกลผ่านเครือข่ายอีเทอร์เน็ตหรือผ่านอินเทอร์เฟซอนุกรม RS-232/485 ช่วยให้การบำรุงรักษาง่ายขึ้น เนื่องจากไม่จำเป็นต้องไปที่เทอร์มินัลทั้งหมดเพื่ออัปเดตซอฟต์แวร์
โมเดล WebOP
สภาพแวดล้อมการพัฒนา WebAccess/HMI Designer
เมื่อแกะกล่อง เทอร์มินัล WebOP เป็นเพียงคอมพิวเตอร์ ARM พลังงานต่ำที่คุณสามารถเรียกใช้ซอฟต์แวร์ใดก็ได้ แต่จุดรวมของโซลูชันนี้คือสภาพแวดล้อมการพัฒนาอินเทอร์เฟซทางอุตสาหกรรม WebAcess/HMI ที่เป็นกรรมสิทธิ์ ระบบประกอบด้วยสองส่วน:
- นักออกแบบ HMI — สภาพแวดล้อมสำหรับการพัฒนาอินเทอร์เฟซและลอจิกการเขียนโปรแกรม ทำงานภายใต้ Windows บนคอมพิวเตอร์ของโปรแกรมเมอร์ โปรแกรมสุดท้ายจะถูกรวบรวมเป็นไฟล์เดียวและถ่ายโอนไปยังเทอร์มินัลเพื่อดำเนินการขณะรันไทม์ โปรแกรมนี้เป็นภาษารัสเซีย
- รันไทม์ HMI — รันไทม์สำหรับการรันโปรแกรมที่คอมไพล์แล้วบนเทอร์มินัลสุดท้าย สามารถทำงานได้ไม่เพียงแต่บนเทอร์มินัล WebOP เท่านั้น แต่ยังทำงานบน Advantech UNO, MIC และคอมพิวเตอร์เดสก์ท็อปทั่วไปด้วย มีเวอร์ชันรันไทม์สำหรับ Linux, Windows, Windows CE
สวัสดีชาวโลก - กำลังสร้างโครงการ
มาเริ่มสร้างอินเทอร์เฟซทดสอบสำหรับแผงควบคุม Habr ของเรากัน ฉันจะรันโปรแกรมบนเทอร์มินัล
การสร้างโครงการใหม่และการเลือกสถาปัตยกรรม
การเลือกโปรโตคอลการสื่อสารที่จะใช้โหลดโปรแกรมที่คอมไพล์ลงใน WebOP ในขั้นตอนนี้ คุณสามารถเลือกอินเทอร์เฟซแบบอนุกรม หรือระบุที่อยู่ IP ของเครื่องอ่านบัตรได้
อินเทอร์เฟซการสร้างโครงการ ทางด้านซ้ายจะมีแผนผังแผนผังส่วนประกอบของโปรแกรมในอนาคต ในตอนนี้ เราสนใจเฉพาะรายการหน้าจอเท่านั้น ซึ่งเป็นหน้าจอโดยตรงที่มีองค์ประกอบอินเทอร์เฟซแบบกราฟิกที่จะแสดงบนเทอร์มินัล
ก่อนอื่นมาสร้างสองหน้าจอพร้อมข้อความ "Hello World" และความสามารถในการสลับระหว่างหน้าจอเหล่านั้นโดยใช้ปุ่ม ในการดำเนินการนี้ เราจะเพิ่มหน้าจอใหม่ หน้าจอ #2 และในแต่ละหน้าจอ เราจะเพิ่มองค์ประกอบข้อความและปุ่มสองปุ่มสำหรับสลับระหว่างหน้าจอ (ปุ่มหน้าจอ) มากำหนดค่าแต่ละปุ่มเพื่อสลับไปยังหน้าจอถัดไป
อินเทอร์เฟซสำหรับตั้งค่าปุ่มเพื่อสลับระหว่างหน้าจอ
โปรแกรม Hello World พร้อมแล้ว ตอนนี้คุณสามารถคอมไพล์และรันได้แล้ว ในขั้นตอนการคอมไพล์อาจมีข้อผิดพลาดในกรณีที่ระบุตัวแปรหรือที่อยู่ไม่ถูกต้อง ข้อผิดพลาดใด ๆ ถือว่าร้ายแรง โปรแกรมจะถูกรวบรวมเฉพาะในกรณีที่ไม่มีข้อผิดพลาด
สภาพแวดล้อมให้ความสามารถในการจำลองเทอร์มินัลเพื่อให้คุณสามารถดีบักโปรแกรมบนคอมพิวเตอร์ของคุณภายในเครื่องได้ การจำลองมีสองประเภท:
- การจำลองออนไลน์ — แหล่งข้อมูลภายนอกทั้งหมดที่ระบุในโปรแกรมจะถูกใช้ สิ่งเหล่านี้อาจเป็น USO หรืออุปกรณ์ที่เชื่อมต่อผ่านอินเทอร์เฟซแบบอนุกรมหรือ Modbus TCP
- การจำลองแบบออฟไลน์ — การจำลองโดยไม่ต้องใช้อุปกรณ์ภายนอก
แม้ว่าเราจะไม่มีข้อมูลภายนอก แต่เราใช้การจำลองแบบออฟไลน์โดยได้รวบรวมโปรแกรมไว้ก่อนหน้านี้แล้ว โปรแกรมสุดท้ายจะอยู่ในโฟลเดอร์โปรเจ็กต์พร้อมชื่อ ProjectName_ProgramName.px3
โปรแกรมที่ทำงานอยู่ในการจำลองสามารถควบคุมได้ด้วยเคอร์เซอร์ของเมาส์ในลักษณะเดียวกับที่ควบคุมบนหน้าจอสัมผัสของเทอร์มินัล WebOP เราเห็นว่าทุกอย่างทำงานได้ตามที่ตั้งใจไว้ ยอดเยี่ยม.
หากต้องการดาวน์โหลดโปรแกรมไปยังเทอร์มินัลจริง เพียงคลิกปุ่มดาวน์โหลด แต่เนื่องจากฉันไม่ได้กำหนดค่าการเชื่อมต่อเทอร์มินัลกับสภาพแวดล้อมการพัฒนา คุณจึงสามารถถ่ายโอนไฟล์โดยใช้แฟลชไดรฟ์ USB หรือการ์ดหน่วยความจำ MicroSD ได้
อินเทอร์เฟซของโปรแกรมใช้งานง่าย ฉันจะไม่ผ่านทุกบล็อกกราฟิก การสร้างพื้นหลัง รูปร่าง และข้อความจะชัดเจนสำหรับทุกคนที่เคยใช้โปรแกรมที่คล้ายกับ Word ในการสร้างอินเทอร์เฟซแบบกราฟิก ไม่จำเป็นต้องมีทักษะการเขียนโปรแกรม องค์ประกอบทั้งหมดจะถูกเพิ่มโดยการลากเมาส์ลงบนแบบฟอร์ม
ทำงานกับหน่วยความจำ
ตอนนี้เรารู้วิธีสร้างองค์ประกอบกราฟิกแล้ว เรามาเรียนรู้วิธีทำงานกับเนื้อหาแบบไดนามิกและภาษาสคริปต์กันดีกว่า มาสร้างแผนภูมิแท่งที่แสดงข้อมูลจากตัวแปรกัน U $ 100. ในการตั้งค่าแผนภูมิ ให้เลือกประเภทข้อมูล: จำนวนเต็ม 16 บิต และช่วงค่าแผนภูมิ: ตั้งแต่ 0 ถึง 10
โปรแกรมรองรับการเขียนสคริปต์ในสามภาษา: VBScript, JavaScript และภาษาของตัวเอง ฉันจะใช้ตัวเลือกที่สามเนื่องจากมีตัวอย่างอยู่ในเอกสารประกอบและความช่วยเหลือด้านไวยากรณ์อัตโนมัติในตัวแก้ไข
มาเพิ่มมาโครใหม่:
มาเขียนโค้ดง่ายๆ เพื่อเพิ่มการเปลี่ยนแปลงข้อมูลในตัวแปรที่สามารถติดตามได้บนแผนภูมิ เราจะเพิ่ม 10 ให้กับตัวแปร และรีเซ็ตให้เป็นศูนย์เมื่อมีค่ามากกว่า 100
$U100=$U100+10
IF $U100>100
$U100=0
ENDIF
หากต้องการรันสคริปต์แบบวนซ้ำ ให้ตั้งค่าในการตั้งค่าทั่วไปเป็นมาโครหลัก โดยมีช่วงเวลาการดำเนินการ 250ms
มาคอมไพล์และรันโปรแกรมในเครื่องจำลอง:
ในขั้นตอนนี้ เราได้เรียนรู้ที่จะจัดการข้อมูลในหน่วยความจำและแสดงข้อมูลด้วยสายตา เพียงพอที่จะสร้างระบบตรวจสอบอย่างง่าย โดยรับข้อมูลจากอุปกรณ์ภายนอก (เซ็นเซอร์ ตัวควบคุม) และบันทึกลงในหน่วยความจำ บล็อกการแสดงข้อมูลต่างๆ มีอยู่ใน HMI Designer: ในรูปแบบของแป้นหมุนวงกลมพร้อมลูกศร แผนภูมิต่างๆ และกราฟ เมื่อใช้สคริปต์ JavaScript คุณสามารถดาวน์โหลดข้อมูลจากแหล่งภายนอกผ่าน HTTP
แผงควบคุมฮาเบอร์
เราจะสร้างอินเทอร์เฟซการ์ตูนสำหรับคอนโซลผู้ดูแลระบบ Habr โดยใช้ทักษะที่ได้รับ
รีโมทคอนโทรลของเราควรจะสามารถ:
- สลับโปรไฟล์ผู้ใช้
- เก็บข้อมูลกรรมและการให้คะแนน
- เปลี่ยนค่ากรรมและการให้คะแนนโดยใช้แถบเลื่อน
- เมื่อคุณคลิกปุ่ม "แบน" โปรไฟล์ควรถูกทำเครื่องหมายว่าถูกแบน รูปประจำตัวควรเปลี่ยนเป็นขีดฆ่า
เราจะแสดงแต่ละโปรไฟล์ในหน้าแยกกัน ดังนั้นเราจะสร้างหน้าสำหรับแต่ละโปรไฟล์ เราจะจัดเก็บกรรมและการให้คะแนนไว้ในตัวแปรท้องถิ่นในหน่วยความจำ ซึ่งจะเริ่มต้นโดยใช้ Setup Macro เมื่อโปรแกรมเริ่มทำงาน
ปรับกรรมและเรตติ้ง
เพื่อปรับกรรมเราจะใช้แถบเลื่อน (Slide Switch) เราระบุตัวแปรที่เริ่มต้นใน Setup Macro เป็นที่อยู่การบันทึก มาจำกัดช่วงของค่าตัวเลื่อนตั้งแต่ 0 ถึง 1500 กัน ตอนนี้เมื่อตัวเลื่อนเลื่อน ข้อมูลใหม่จะถูกเขียนลงในหน่วยความจำ ในกรณีนี้สถานะเริ่มต้นของแถบเลื่อนจะสอดคล้องกับค่าของตัวแปรในหน่วยความจำ
ในการแสดงค่าตัวเลขของกรรมและการให้คะแนนเราจะใช้องค์ประกอบการแสดงตัวเลข หลักการทำงานของมันคล้ายกับแผนภาพจากตัวอย่างโปรแกรม “Hello World” เราเพียงแค่ระบุที่อยู่ของตัวแปรใน Monitor Address
ปุ่มแบน
ปุ่ม “แบน” ถูกนำมาใช้โดยใช้องค์ประกอบสลับสลับ หลักการจัดเก็บข้อมูลจะคล้ายกับตัวอย่างข้างต้น ในการตั้งค่า คุณสามารถเลือกข้อความ สี หรือรูปภาพที่แตกต่างกันได้ ขึ้นอยู่กับสถานะของปุ่ม
เมื่อกดปุ่ม รูปประจำตัวควรถูกขีดฆ่าเป็นสีแดง นี่เป็นเรื่องง่ายที่จะนำไปใช้โดยใช้บล็อกการแสดงรูปภาพ ช่วยให้คุณสามารถระบุรูปภาพหลายรูปที่เกี่ยวข้องกับสถานะของปุ่ม Toggle Switch ในการดำเนินการนี้ บล็อกจะได้รับที่อยู่เดียวกันกับบล็อกที่มีปุ่มและจำนวนสถานะ รูปภาพที่มีป้ายชื่ออยู่ใต้อวตารได้รับการตั้งค่าในลักษณะเดียวกัน
ข้อสรุป
โดยรวมแล้วฉันชอบผลิตภัณฑ์ ก่อนหน้านี้ฉันเคยมีประสบการณ์ในการใช้แท็บเล็ต Android สำหรับงานที่คล้ายกัน แต่การพัฒนาอินเทอร์เฟซสำหรับแท็บเล็ตนั้นยากกว่ามากและ API ของเบราว์เซอร์ไม่อนุญาตให้เข้าถึงอุปกรณ์ต่อพ่วงโดยสมบูรณ์ เทอร์มินัล WebOP หนึ่งเครื่องสามารถแทนที่แท็บเล็ต Android คอมพิวเตอร์ และคอนโทรลเลอร์ร่วมกันได้
HMI Designer แม้จะมีการออกแบบที่ล้าสมัย แต่ก็ค่อนข้างล้ำหน้า หากไม่มีทักษะการเขียนโปรแกรมพิเศษคุณสามารถร่างอินเทอร์เฟซการทำงานได้อย่างรวดเร็ว บทความนี้ไม่ได้กล่าวถึงบล็อกกราฟิกทั้งหมดซึ่งมีจำนวนมาก: ไปป์แบบเคลื่อนไหว, กระบอกสูบ, กราฟ, สวิตช์สลับ รองรับคอนโทรลเลอร์ทางอุตสาหกรรมยอดนิยมหลายตัวตั้งแต่แกะกล่องและมีตัวเชื่อมต่อฐานข้อมูล
การอ้างอิง
สามารถดาวน์โหลด WebAccess/HMI Designer และสภาพแวดล้อมการพัฒนารันไทม์ได้