Chương 2: XÂY DỰNG PHẦN MỀM GIAO ĐIỆN NGƯỜI MÁY (HMI)
2.4. Hướng dẫn sử dụng phần mềm giao diện người máy (HMI)
- Khai báo các chế độ truyền thông như lưu đồ thuật toán điều khiển Hình 2.9. Mã chương trình như Phụ lục B.2
Bước 2: Dùng phần mềm HMI.EXE để kiểm tra chương trình (ở đây các thiết bị phần cứng đã phải được chuẩn bị từ trước như: Cáp PC/PPI RS232/RS485, PC, CPU PLC S7-200).
Sau khi đã chuẩn bị phần cứng thì bắt đầu kiểm tra:
- Mở phần mềm giao diện HMI.EXE ra như Hình 2.10 sau đó bấm vào Connect để kết nối với cổng COM. Phần mềm đang mặc định cổng kết nối là cổng COM 1, tốc độ truyền là 9,600 baud, 8 bits dữ liệu, không parity, 1 bit stop. Nếu muốn thay đổi phương thức truyền thì ta chỉ con trỏ đến phần Setting Hình 2.11 và cần thay đổi lại chương trình chính của PLC.
Hình 2.11 Cài đặt cổng COM
- Sau khi cài đặt và kết nối xong, trên khung truyền ta tùy chọn dữ liệu để đặt xuống cho PLC, dữ liệu được truy cập theo Bits, Binary, Decimal như Hình 2.12.
Kiểu dữ liệu I Định dạng
IB0 Bits, Binary, Decimal IB1 Bits, Binary, Decimal IB2 Bits, Binary, Decimal IB3 Bits, Binary, Decimal
IW0 Binary, Decimal
IW2 Binary, Decimal
ID0 Decimal
Kiểu dữ liệu Q Định dạng
QB0 Bits, Binary, Decimal QB1 Bits, Binary, Decimal QB2 Bits, Binary, Decimal
QB3 Bits, Binary, Decimal
QW0 Binary, Decimal
QW2 Binary, Decimal
QD0 Decimal
Kiểu dữ liệu M Định dạng
MB0 Bits, Binary, Decimal MB1 Bits, Binary, Decimal MB2 Bits, Binary, Decimal MB3 Bits, Binary, Decimal
MW0 Binary, Decimal
MW2 Binary, Decimal
MD0 Decimal
Kiểu dữ liệu V Định dạng
VB0 Bits, Binary, Decimal VB1 Bits, Binary, Decimal VB2 Bits, Binary, Decimal VB3 Bits, Binary, Decimal
VW0 Binary, Decimal
VW2 Binary, Decimal
VD0 Decimal
Kiểu dữ liệu T Định dạng
Timer Decimal
Kiểu dữ liệu C Định dạng
Counter Decimal
Hình 2.12. Chọn khung truyền, khung nhận và đặt xuống PLC
Như vậy rên PLC thì Q0.0 và Q0.5 có giá gị là (true) tương đương với việc sử dụng các tín hiệu này để điều khiển các đối tượng tùy ý. Có thể chỉ sử dụng phần mềm HMI.EXE này để giám sát điều khiển PLC. Tuy nhiên để có giao diện đẹp, lý tưởng cho những bài toán công nghệ cụ thể thì ta thực hiện Bước 3.
Bước 3: Thiết kế một giao diện theo ý mình (điều này đặc biệt dễ đối với những ai đã biết sơ qua về lập trình VB6.0).
- Mở 1 Project mới Hình 2.14. Ở đây thiết kế một giao diện chỉ để làm ví dụ hướng dẫn sử dụng (HMI) mà thôi. Ví dụ cụ thể là khi ta ấn nút “Khởi động” thì tương ứng các đầu ra của PLC Q0.0 và Q0.5 phải sáng và nó cung cấp tín hiệu để điều khiển cho hai khởi động từ của “Động cơ 1” và “Động cơ 2”.
Hình 2.14. Tạo một Project mới Project gồm 02 Label, 1 Timer, 02 Shape, 03 Command Sau đó viết code như sau:
Nút khởi động
Private Sub Command1_Click() frmMain.Check5(2).Value = 1 frmMain.Check8(2).Value = 1 frmMain.cmdSend.Value = True End Sub
Thủ tục gọi HIM
Private Sub Command2_Click() Load frmMain
frmMain.Show End Sub
Nút dừng
Private Sub Command3_Click() frmMain.Check5(2).Value = 0 frmMain.Check8(2).Value = 0
frmMain.cmdSend.Value = True End Sub
Thủ tục đổi màu của Shape
Private Sub Timer1_Timer()
If frmMain.Check5(7).Value = 1 Then Shape1.FillColor = vbGreen
Else
Shape1.FillColor = vbRed End If
If frmMain.Check8(7).Value = 1 Then Shape2.FillColor = vbGreen
Else
Shape2.FillColor = vbRed End If
End Sub
Trước tiên ta phải ấn vào nú “Gọi HMI” sau đó ấn Connect, đặt giá trị cho khung truyền, nhận (Ở ví dụ này chú ý đặt QB0, Bits ở cả khung truyền và nhận) sau đó trở về giao diện vừa thiết kế. Ấn nút khở động Hình 2.15 hoặc nút dừng Hình 2.16
Hình 2.15 Khi ấn nút “Khởi động”
Hình 2.16. Khi ấn nút “Dừng”
Các Check sử dụng để truy cập dạng bit như Bảng 2.1, Bảng 2.2 Bảng 2.1. Các check truyền để ứng dụng cho thiết kế
IB0 Check1(0) & Check2(0) & Check3(0) & Check4(0) & Check5(0) &
Check6(0) & Check7(0) & Check8(0)
IB1 Check1(6) & Check2(6) & Check3(6) & Check4(6) & Check5(6) &
Check6(6) & Check7(6) & Check8(6)
IB2 Check1(8) & Check2(8) & Check3(8) & Check4(8) & Check5(8) &
Check6(8) & Check7(8) & Check8(8)
IB3 Check1(10) & Check2(10) & Check3(10) & Check4(10) & Check5(10) &
Check6(10) & Check7(10) & Check8(10)
QB0 Check1(2) & Check2(2) & Check3(2) & Check4(2) & Check5(2) &
Check6(2) & Check7(2) & Check8(2)
QB1 Check1(11) & Check2(11) & Check3(11) & Check4(11) & Check5(11) &
Check6(11) & Check7(11) & Check8(11)
QB2 Check1(12) & Check2(12) & Check3(12) & Check4(12) & Check5(12) &
Check6(12) & Check7(12) & Check8(12)
QB3 Check1(13) & Check2(13) & Check3(13) & Check4(13) & Check5(13) &
Check6(13) & Check7(13) & Check8(13)
MB0 Check1(4) & Check2(4) & Check3(4) & Check4(4) & Check5(4) &
Check6(4) & Check7(4) & Check8(4)
MB1 Check1(14) & Check2(14) & Check3(14) & Check4(14) & Check5(14) &
Check6(14) & Check7(14) & Check8(14)
MB2 Check1(16) & Check2(16) & Check3(16) & Check4(16) & Check5(16) &
Check6(16) & Check7(16) & Check8(16)
MB3 Check1(17) & Check2(17) & Check3(17) & Check4(17) & Check5(17) &
Check6(17) & Check7(17) & Check8(17)
VB0 Check1(3) & Check2(3) & Check3(3) & Check4(3) & Check5(3) &
Check6(3) & Check7(3) & Check8(3)
VB1 Check1(18) & Check2(18) & Check3(18) & Check4(18) & Check5(18) &
Check6(18) & Check7(18) & Check8(18)
VB2 Check1(19) & Check2(19) & Check3(19) & Check4(19) & Check5(19) &
Check6(19) & Check7(19) & Check8(19)
VB3 Check1(20) & Check2(20) & Check3(20) & Check4(20) & Check5(20) &
Check6(20) & Check7(20) & Check8(20)
Bảng 2.2. Các check nhận để ứng dụng cho thiết kế
IB0 Check1(1) & Check2(1) & Check3(1) & Check4(1) & Check5(1) &
Check6(1) & Check7(1) & Check8(1)
IB1 Check1(15) & Check2(15) & Check3(15) & Check4(15) & Check5(15) &
Check6(15) & Check7(15) & Check8(15)
IB2 Check1(21) & Check2(21) & Check3(21) & Check4(21) & Check5(21) &
Check6(21) & Check7(21) & Check8(21)
IB3 Check1(22) & Check2(22) & Check3(22) & Check4(22) & Check5(22) &
Check6(22) & Check7(22) & Check8(22)
QB0 Check1(7) & Check2(7) & Check3(7) & Check4(7) & Check5(7) &
Check6(7) & Check7(7) & Check8(7)
QB1 Check1(22) & Check2(22) & Check3(22) & Check4(22) & Check5(22) &
Check6(22) & Check7(22) & Check8(22)
QB2 Check1(23) & Check2(23) & Check3(23) & Check4(23) & Check5(23) &
Check6(23) & Check7(23) & Check8(23)
QB3 Check1(24) & Check2(24) & Check3(24) & Check4(24) & Check5(24) &
Check6(24) & Check7(24) & Check8(24)
MB0 Check1(9) & Check2(9) & Check3(9) & Check4(9) & Check5(9) &
Check6(9) & Check7(9) & Check8(9)
MB1 Check1(26) & Check2(26) & Check3(26) & Check4(26) & Check5(26) &
Check6(26) & Check7(26) & Check8(26)
MB2 Check1(27) & Check2(27) & Check3(27) & Check4(27) & Check5(27) &
Check6(27) & Check7(27) & Check8(27)
MB3 Check1(28) & Check2(28) & Check3(28) & Check4(28) & Check5(28) &
Check6(28) & Check7(28) & Check8(28)
VB0 Check1(5) & Check2(5) & Check3(5) & Check4(5) & Check5(5) &
Check6(5) & Check7(5) & Check8(5)
VB1 Check1(29) & Check2(29) & Check3(29) & Check4(29) & Check5(29) &
Check6(29) & Check7(29) & Check8(29)
VB2 Check1(30) & Check2(30) & Check3(30) & Check4(30) & Check5(30) &
Check6(30) & Check7(30) & Check8(30)
VB3 Check1(31) & Check2(31) & Check3(31) & Check4(31) & Check5(31) &
Check6(31) & Check7(31) & Check8(31)
Các Text sử dụng để truy cập dạng Binary hoặc Decimal như bảng 2.3 và bảng 2.4.
Bảng 2.3. Các text truyền để ứng dụng cho thiết kế
IB0, IB1, IB2, IB3, IW0, IW1, ID0 Text1(0) QB0, QB1, QB2, QB3, QW0, QW1, QD0 Text1(1) MB0, MB1, MB2, MB3, MW0, MW1, MD0 Text1(2) VB0, VB1, VB2, VB3, VW0, VW1, VD0 Text1(3)
Timer Text1(4)
Counter Text1(5)
Bảng 2.4. Các text nhận để ứng dụng cho thiết kế IB0, IB1, IB2, IB3, IW0, IW1, ID0 Text1(6)
QB0, QB1, QB2, QB3, QW0, QW1, QD0 Text1(7) MB0, MB1, MB2, MB3, MW0, MW1, MD0 Text1(8) VB0, VB1, VB2, VB3, VW0, VW1, VD0 Text1(9)
Timer Text1(10)
Counter Text1(11)