MỤC ĐÍCH THÍ NGHIỆM • Nắm bắt được cách sử dụng các lệnh cơ bản của PLC S7-200 • Nắm được phương pháp cấu hình và lập trình giao diện máy tính giao tiếp RS232 • Lập trình truyền thông n
Trang 1THÍ NGHIỆM ĐO LƯỜNG VÀ ĐIỀU
KHIỂN BẰNG MÁY TÍNH
BTN #2: TRUYỀN THÔNG NỐI TIẾP PC VỚI PLC
THÁNG 4 NĂM 2018
BỘ MÔN TỰ ĐỘNG, KHOA ĐIỆN ĐIỆN TỬ - ĐẠI HỌC BÁCH KHOA TP.HCM
Trang 2
BTN 2: TRUYỀN THÔNG NỐI TIẾP GIỮA PC VỚI PLC
I MỤC ĐÍCH THÍ NGHIỆM
• Nắm bắt được cách sử dụng các lệnh cơ bản của PLC S7-200
• Nắm được phương pháp cấu hình và lập trình giao diện máy tính giao tiếp RS232
• Lập trình truyền thông nối tiếp cho PLC S7-200
• Giải quyết bài toán đơn giản bằng PLC S7-200
• Lập trình giao diện kết nối, điều khiển và thu thập dữ liệu qua máy tính
qua chuẩn truyền RS232
II CHUẨN BỊ THÍ NGHIỆM
• Sinh viên tìm hiểu cấu trúc bộ nhớ cũng như tập lệnh của PLC S7-200
thông qua các slide giáo viên đã gửi trước trên hệ thống e-learning
• Sinh viên tìm hiểu và lập trình thử các bài thí nghiệm trước khi đến lớp
• Phầm mềm lập trình PLC Step7-Micro/WIN
• Phần mềm lập trình giao diện Window form
III GIỚI THIỆU MÔ HÌNH THÍ NGHIỆM
Kít thí nghiệm được bố trí như Hình 1
Hình 1: Kit thí nghiệm S7 -200
PLC – s7 200
BT1
BT2
BT3
SW1 SW2 SW3
IN
OUT
Trang 3- Các đèn led giao thông Xanh, Vàng, Đỏ của 2 trụ A và B lần lượt được nối với
các chân Q0.0 đến Q0.5 của PLC
- Các nút nhấn BT1 – BT3 được nối với các ngõ vào I0.0 – I0.2 của PLC
- Các công tắc SW1 – SW3 được nối với các ngõ vào I0.3 – I0.5 của PLC
- Giữa PLC và máy tính được nối với nhau qua cáp lập trình PPI và kết nối truyền
thông nối tiếp Free Port
IV THÍ NGHIỆM
A Bài Thí nghiệm 1: Làm quen với PLC S7-200
1 Thí nghiệm 1.1: Thực hiện bài toán điều khiển đèn giao thông với các thông số đèn: XA = 30s, VA = 3s, DA = 43s; XB = 40s, VB = 3s, DB = 33s
- Mở chương phần mềm lập trình Step 7 Microwin viết đoạn chương trình sau: TITLE=PROGRAM COMMENTS
Network 1 // Network Title
// Network Comment
LDN T40
LPS
TON T37, VW130
A T37
TON T38, VW132
LRD
A T38
TON T39, VW134
LPP
A T39
TON T40, VW136
************************
Network 2
LDN T37
= Q0.0
************************
Network 3
LD T37
Trang 4AN T38
= Q0.1
************************
Network 4
LD T38
= Q0.2
************************
Network 5
LD T38
AN T39
= Q0.3
************************
Network 6
LD T39
= Q0.4
************************
Network 7
LDN T38
= Q0.5
************************
Network 8
LD SM0.0
MOVW 300, VW130
MOVW 30, VW132
MOVW 400, VW134
MOVW 30, VW136
- Sinh viên có thể chuyển từ STL sang Ladder bằng cách chọn View à Ladder trên thanh công cụ
- Giải thích chức năng của chương trình trên Tìm hiểu chức năng của SM0.0 ở Network 8 là gì? Nếu bỏ SM0.0 thì chương trình có biên dịch được hay không?
Trang 5- Thực hiện biên dịch và nạp chương trình cho PLC theo cổng COM kết nối giữa PLC và máy tính
- Quan sát hoạt động của PLC và tín hiệu đèn giao thông
2 Thí nghiệm 1.2: Cải tiến chương trình của Thí nghiệm 1.1 hoạt động theo
các chế độ khác nhau: Khi người dùng bấm các nút khác nhau thì chương trình sẽ thay đổi thời gian của các đèn:
- Khi có cạnh lên BT1, đèn hoạt động theo chu kỳ XA = 30s, VA = 3s, DA = 43s;
XB = 40s, VB = 3s, DB = 33s
- Khi có cạnh lên BT2, đèn hoạt động theo chu kỳ XA = 60s, VA = 5s, DA = 65s;
XB = 60s, VB = 5s, DB = 65s
- Khi có cạnh lên BT3, đèn VA và VB nhấp nháy với chu kì 1s (500 ms mở, 500
ms tắt), các đèn còn lại tắt hoàn toàn
- Quy ước 3 chế độ hoạt động ở trên lần lượt là Mode 1, Mode 2, Mode 3 (để thuận lợi khi diễn giải cho phần thí nghiệm sau)
** Sinh viên lập trình và báo cáo kết quả cho GVHD
3 Thí nghiệm 1.3: Lập trình tính toán thời gian đếm ngược của các trụ đèn
A và B:
- Trong trường hợp hệ thống đang chạy ở Mode 1 hoặc Mode 2, sinh viên lập trình tính toán thời gian đếm ngược của các trụ đèn tính theo đơn vị giây Kết quả tính
toán lần lượt được lưu vào các thanh ghi theo quy ước:
VB120 Chữ số hàng chục hiển thị ở trụ A
VB121 Chữ số hàng đơn vị hiển thị ở trụ A
VB122 Chữ số hàng chục hiển thị ở trụ B
VB123 Chữ số hàng đơn vị hiển thị ở trụ B
- Trong trường hợp hệ thống đang chạy ở Mode 3, các thanh ghi VB120 đến
VB123 đều có giá trị là 32
- Gợi ý: Sử dụng phép trừ với đầu vào là các ô nhớ VW130 đến VW136 và các
thanh ghi T37 đến T40 một cách hợp lý để tính ra giá trị đếm ngược
** Sinh viên lập trình và báo cáo kết quả cho GVHD
Trang 6B Thí nghiệm 2: Giao tiếp giữa PC và PLC sử dụng ngắtnhận ký tự, truyền thông qua PORT 0, giao thức “9600, N,8,1”
1 Thí nghiệm 2.1: Thực hiện Liên kết đơn giản giữa PLC và PC
Bài toán:
- Yêu cầu: Thực hiện chương trình cho phép điều khiển tắt, mở động cơ từ Panel (bấm BT1 thì động cơ chạy, bấm BT2 thì động cơ dừng, dùng Q0.0 để mô phỏng tín hiệu động cơ) Trạng thái của động cơ được truyền lên máy tính thông qua giao tiếp nối tiếp giữa PORT 0 của PLC và cổng COM trên máy tính Ngoài ra, trên giao diện người dùng cũng cho phép tắt, mở động cơ thông qua các nút bấm (Khi người dùng bấm nút “MOTOR ON” thì động cơ chạy, bấm nút “MOTOR OFF” thì động cơ dừng)
Hình 2: Màn hình giao diện điều khiển trên máy tính
- Quy định truyền thông:
o Khi bấm nút “MOTOR ON”: Máy tính truyền xuống PLC ký tự ‘A’
o Khi bấm nút “MOTOR OFF”: Máy tính truyền xuống PLC ký tự ‘B’
o Khi động cơ chuyển từ trạng thái dừng sang chạy (người dùng bấm nút BT1 trên Panel hoặc có bản tin ‘A’ truyền về PLC): PLC truyền về máy tính ký tự ‘A’ và hình tròn giao diện hiển thị màu đỏ
o Khi động cơ chuyển từ trạng thái chạy sang dừng (người dùng bấm nút BT2 trên Panel hoặc có bản tin ‘B’ truyền về PLC): PLC truyền về máy tính ký tự ‘B’ và hình tròn giao diện hiển thị màu trắng
- Thực hiện thí nghiệm
Trang 7Chương trình giao diện máy tính: SV có thể tham khảo chương trình dưới:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
{
InitializeComponent();
}
{
}
{
}
{
}
{
data = serialPort1.ReadExisting();
}
{
textBox1.Text = data.Trim();
{
ovalShape1.BackStyle =
}
{
ovalShape1.BackStyle =
}
}
}
Trang 8Chương trình PLC
Mở một chương trình mới trong phần mềm STEP7 MicroWIN, vào tab Main, viết đoạn chương trình sau:
TITLE=PROGRAM COMMENTS
Network 1 // Network Title
// Network Comment
LD SM0.1
MOVB 16#09, SMB30 (Note: thiết lập truyền thông “9600,N,8,1”)
ATCH INT0, 8 (Note: Khai báo ngắt nhận ký tự)
ENI
Network 2 (Note: đoan lệnh điều khiển motor ON/OFF bởi Panel và Giao diện)
LD I0.0
O Q0.0
O M0.0
AN I0.1
AN M0.1
= Q0.0
Network 3
LD M0.0
R M0.0, 1
Network 4
LD M0.1
R M0.1, 1
Network 5 (Note: đoạn lệnh thiết lập nội dung truyền về PC, ký tự A thuôc vùng nhớ VB100; ký
tự B thuộc vùng nhớ VB102)
LD SM0.1
MOVB 1, VB100
MOVB 'A', VB101
MOVB 1, VB102
Trang 9MOVB 'B', VB103
Network 6 // (Note: khi motor ON thì truyền về ký tự A”, khi motor OFF thì truyền về ký tự B”)
LD Q0.0
LPS
EU
XMT VB100, 0
LPP
ED
XMT VB102, 0
LD Q0.0
XMT VB100, 0
LDN Q0.0
XMT VB102, 0
Vào tab INT0, viết đoạn chương trình kiểm tra thông tin nhận từ PC như sau:
TITLE=INTERRUPT ROUTINE COMMENTS
Network 1 // Network Title
// Network Comment
LDB= SMB2, 'A'
S M0.0, 1
Network 2
LDB= SMB2, 'B'
S M0.1, 1
- Nạp chương trình PLC, kiểm tra hoạt động của chương trình và kết
quả điều khiển từ máy tính và trả lời các câu hỏi bên dưới:
- Chú ý:
o PLC: Để đảm bảo kết nối nạp chương trình, PLC phải để ở mode
Stop; khi khi nạp chương trình xong thì chuyển lại qua chế độ Run
o Phần mềm giao diện: tắt Microwin trước khi chạy giao diện tránh
hiện tượng chiếm quyền của Microwin
Trang 10- Câu hỏi:
a Tìm hiểu lệnh XMT trong tập lệnh lập trình PLC S7-200, giải thích ý
nghĩa các phép gán của Network 5
b Chương trình trong tab INT0 dùng để làm gì? Khi nào thì đoạn chương
trình này được thực thi?
c Giải thích toàn bộ chương trình được nạp vào PLC S7-200
d Vì sao trong chương trình giao diện máy tính cần phải sử dụng cấu trúc
ủy nhiệm (delegate)? Nói cách khác, nếu không sử dụng cấu trúc này
mà gọi thẳng chương trình con si_DataReceived khi xử lý sự kiện của Serial Port có thể xảy ra vấn đề gì?
e Trong một số trường hợp, khi người dùng bấm “MOTOR ON” trên giao diện máy tính thì dữ liệu PLC gửi về bị lỗi, vòng tròn trên giao diện không chuyển thành màu đò Sinh viên giải thích lý do và nêu phương án giải quyết
2 Thí nghiệm 2.2: thực hiện cải tiến bài toán điều khiển đèn giao thông
của thí nghiệm 1.3 (hoặc 1.2) và quan sát trên giao diện Sinh viên nên giải quyết từng yêu cầu dưới đây:
Yêu cầu 1: Từ chương trình đèn giao thông (thí nghiệm 1.3 hoặc 1.2), hiển thị
trạng thái hiện tại của các đèn giao thông lên giao diện máy tính:
Gợi ý:
- Các trụ đèn giao thông chỉ có tối đa 6 trạng thái (sinh viên tự liệt kê) Như vậy đơn giản nhất hãy kí hiệu 6 trạng thái đó lần lượt là A, B, C, D, E, F Hiện tại trụ đèn đang ở trạng thái nào thì gửi kí tự tương ứng lên máy tính
- Frame truyền chỉ cần 1 byte duy nhất
- Có thể sử dụng cấu trúc ovalShape ở thí nghiệm 2.1 để hiển thị trạng thái các đèn
Yêu cầu 2: Hiển thị thêm giá trị thời gian đếm ngược của các đèn lên giao diện
máy tính
Gợi ý:
- Mở rộng frame truyền từ 1 byte lên 5 byte, trong đó 4 byte cộng thêm chính
là 4 chữ số đếm ngược ở 2 trụ
- Chú ý để chuyển từ số sang mã ASCII, phải cộng thêm 48
- Chú ý trong Mode 3, không hiển thị số đếm, như vậy phải gửi kí tự “space” lên máy tính
Yêu cầu 3: Cho phép người dùng chọn Mode từ giao diện điều khiển
Gợi ý: Có thể gửi các kí tự “1”, “2”, “3” từ máy tính xuống để chọn Mode tương
ứng
Trang 11Nội dung Báo cáo thí nghiệm:
- Giải thuật và Chương trình PLC các thí nghiệm 1.2, 1.3 và 2.2, giải thích hoạt động?
- Kết quả thực hiện, giao diện điều khiển trên PC của thí nghiệm 2.1 và 2.2
- Đề xuất các phương án khác cho thí yêu cầu bài toán ở thí nghiệm 2.2
Trang 12Bảng nhận xét, đánh giá của GV Thông tin Sinh viên:
Nhóm:
Họ và Tên SV:
MSSV:
Các Nhiệm vụ và nội dung thực hiện trong buổi thí nghiệm:
Đánh giá của GV:
1 Chuẩn bị Bài TN
2 Mức đô hoàn thành BTN
3 Mức độ nắm bắt nội dung thí nghiệm
4 Mức độ giải quyết các bài toán trực tiếp của GVHD
5 Nội dung báo cáo thí nghiệm
6 Mức độ trả lời các câu hỏi trong BTN
7 Tính sáng tạo của giải thuật đề xuất
8 Liên kết giữa các thành viên trong nhóm
Các ý kiến khác: