Truyền thông freeport và ứng dụng
-
Upload
lol-limated -
Category
Automotive
-
view
525 -
download
6
Transcript of Truyền thông freeport và ứng dụng
Automanvn [TÀI LIỆU ÔN THI TỐT NGHIỆP. PHẦN 4]
PLC_Lab | Tài liệu ôn thi tốt nghiệp 1
TRUYỀN THÔNG FREEPORT VÀ ỨNG DỤNG
Mode truyền thông cho phép chương trình điều khiển port truyền thông của S7-200 CPU. Ta có
thể dùng mode Freeport để thực hiện giao thức truyền thông do người dùng định nghĩa đến tất
cả các thiết bị thông minh khác khi ta biết giao thức của chúng (tất nhiên). Freeport mode hỗ
trợ cả giao thức mã ASCII hoặc giao thức mã nhị phân.
Để cho phép Freeport mode, ta có thể dùng byte nhớ đặc biệt SMB30 (cho Port 0) và SMB130
(cho Port 1). Chương trình dùng những lệnh sau để điều khiển hoạt động của port truyền thông:
- Lệnh truyền (Transmit instruction-XMT) và ngắt truyền : Lệnh truyền cho phép S7-200
truyền lên đến 255 kí tự thông qua cổng COM. Ngắt truyền thông báo cho chương trình trong
S7-200 khi truyền thông hoàn tất.
- Ngắt nhận kí tự (Receive character interrupt): Ngắt nhận kí tự báo cho chương trình khi kí tự
nhận hoàn tất ở cổng COM. Chương trình có thể xử lý chương trình đó dựa trên giao thức được
thực hiện.
- Lệnh nhận (Receive instruction - RCV): Lệnh nhận nhận kí tự được truyền vào thông qua
cổng COM và sau đó tạo một ngắt cho chương trình khi kí tự nhận hoàn tất. Ta dùng vùng nhớ
SM để cấu hình lệnh Receive để khởi động và dừng nhận tín hiệu dựa trên điều kiện được định
nghĩa. Lệnh nhận cho phép chương trình khởi động dừng dựa trên kí tự đặc biệt hay một
khoảng thời gian on. Hầu hết các giao thức có thể thực hiện với lệnh nhận (Receive
instruction).
Mode Freeport được tích cực khi S7-200 ở chế độ RUN mode. Thiết lập S7-200 để mode STOP
dừng tất cả việc truyền thông Freeport, và port truyền thông sau đó chuyển về giao thức PPI
thiết lập được cấu hình trong khối hệ thống ( system block) của S7-200.
Cấu hình mạng
Automanvn [TÀI LIỆU ÔN THI TỐT NGHIỆP. PHẦN 4]
PLC_Lab | Tài liệu ôn thi tốt nghiệp 2
Dùng Freeport
thông qua kết nối
RS-232.
Ví dụ : Dùng S7-200 với một cân
trả về tín hiệu thông qua cổng RS-
232.
Cáp RS-232/PPI Multi-Master kết
nối cổng RS-232 của cân điện tử
với chuẩn RS-485 port trên S7-200
CPU. (Thiết lập cáp về mode
PPI/Freeport, chuyển mạch 5=0.)
S7-200 CPU dùng Freeport để
truyền thông với cân.
Tốc độ truyền thông từ 1200 baud
đến 115.2 kbaud.
Chương trình người dùng định
nghĩa giao thức.
Dùng cáp RS-232/PPI Multi-Master và Freeport Mode với thiết bị RS-232.
Ta có thể dùng cáp RS-232/PPI Multi-Master và hàm truyền thông Freeport để kết nối S7-200
CPUs với nhiều thiết bị tương thích với chuẩn RS-232. Cáp phải được thiết lập theo mode
PPI/Freeport (chuyển mạch 5 = 0) để thực hiện việc truyền thông. Chuyển mạch 6 dùng chọn
lựa mode cục bộ (DCE) (switch 6 = 0), hay Remote mode (DTE) (switch 6 = 1).
Cáp RS-232/PPI Multi-Master ở mode truyền khi dữ liệu được truyền từ cổng RS-232 đến cổng
RS-485. Cáp ở chế độ mode nhận (Receive mode) khi nó rỗi hay ở đang ở truyền dữ liệu từ
cổng RS-485 từ cổng RS-232. Cáp thay đổi từ mode truyền sang mode nhận ngay lập tức khi
nó dò thấy kí tự từ dây truyền RS-232.
Automanvn [TÀI LIỆU ÔN THI TỐT NGHIỆP. PHẦN 4]
PLC_Lab | Tài liệu ôn thi tốt nghiệp 3
Nếu ta dùng cáp RS-232/PPI Multi-Master trong hệ thống có truyền thông Freeport, chương
trình trong S7-200 phải bao gồm thời gian đặt trước để kiểm tra ở những điều kiện sau :
- S7-200 trả lời tin được truyền từ thiết bị RS-232.
Sau khi S7-200 nhận được tin yêu cầu từ thiết bị có giao thức chuẩn RS-232, S7-200 phải delay
tin trả lời một khoảng thời gian lớn hơn hay bằng thời gian đặt trước để kiểm tra của cáp.
- Thiết bị RS-232 trả lời tin được truyền từ S7-200.
Sau khi S7-200 nhận được tin trả lời từ thiết bị RS-232, S7-200 phải delay việc truyền tin kế
một khoảng thời gian lớn hơn hoặc bằng khoảng thời gian đặt trước để kiểm tra của cáp.
Cấu hình cáp PPI Multi-Master để làm việc ở giao thức Freeport
Cáp RS-232 PPI Multi-Master cho phép hỗ trợ truyền thông Freeport, tuy nhiên ta phải cấu
hình đúng tốc độ truyền thông, cờ và số bit dữ liệu của S7-200.
Tốc độ truyền thông : nằm trong khoảng từ 1.2 kbaud đến 115.2 kbaud.
Có thể chọn lựa 7 hay 8 bit dữ liệu.
Có thể chọn lựa cờ chẳn, lẻ hoặc không có cờ.
Lệnh trong mode Freeport
Automanvn [TÀI LIỆU ÔN THI TỐT NGHIỆP. PHẦN 4]
PLC_Lab | Tài liệu ôn thi tốt nghiệp 4
Khi cấu hình cáp RS-232/PPI Multi-Master với STEP 7--Micro/WIN, ta phải kết nối đầu nối
RS-485 với S7-200 CPU. Đây là nguồn (24V) cần cung cấp cho cáp hoạt động. Vì thế, cần phải
cấp nguồn cho S7-200 CPU.
Lệnh Transmit và Receive (Freeport)
Lệnh truyền (Transmit instruction - XMT) được dùng trong mode Freeport để truyền dữ liệu
thông qua cổng truyền thông.
Lệnh nhận (Receive instruction - RCV) bắt đầu hay kết thúc chức năng nhận tin. Ta phải mô tả
điều kiện bắt đầu và điều kiện kết thúc cho lệnh nhận để lệnh này hoạt động. Tin được nhận
thông qua port được mô tả ở (PORT) và được lưu và bộ đệm dữ liệu được bắt đầu bằng (TBL).
Byte đầu tiên của bộ đệm chứa số các byte được nhận.
Bảng 6-12 Các toán hạng cho lệnh truyền và nhận.
Automanvn [TÀI LIỆU ÔN THI TỐT NGHIỆP. PHẦN 4]
PLC_Lab | Tài liệu ôn thi tốt nghiệp 5
Dùng mode Freeport để điều khiển cổng truyền thông nối tiếp.
Ta có thể chọn mode Freeport để điều khiển port truyền thông nối tiếp của S7-200 dùng chương
trình. Khi ta chọn mode Freeport, chương trình điều khiển hoạt động port truyền thông thông
qua việc dùng ngắt nhận, ngắt truyền, lệnh truyền và lệnh nhận. Giao thức truyền thông hoàn
toàn được điều khiển bằng chương trình LAD trong mode Freeport. SMB30 (for port 0) và
SMB130 (cho port 1 nếu PLC S7-200 đang dùng có 2 port) được dùng để chọn lựa tốc độ
truyền (baud rate) và cờ ưu tiên (parity).
Mode Freeport bị hủy và việc truyền thông bình thường được tái lập (ví dụ với thiết bị lập
trình) khi S7-200 ở mode STOP.
Trong trường hợp đơn giản nhất, ta có thể gởi một tin đến máy in hoặc thiết bị hiển thị dùng chỉ
lệnh Transmit (XMT). Ví dụ khác bao gồm cả việc kết nối với bộ đọc mã vạch, cân điện tử
(weighing scale), and a welder. Trong mỗi trường hợp, ta phải viết chương trình hỗ trợ giao
thức được dùng bởi thiết bị trong đó thực hiện truyền thông với S7-200 thông qua chuẩn
Freeport.
Truyền thông Freeport chỉ phù hợp khi S7-200 ở trong mode RUN. Cho phép mode Freeport
bằng cách thiết lập giá trị 01 trong giao thức chọn trường thuộc SMB30 (Port 0) hay SMB130
(Port 1). Trong mode Freeport, truyền thông với thiết bị lập trình không được hỗ trợ.
Tip
Mode Freeport có thể được điều khiển dùng bit đặc biệt SM0.7, biểu thị vị trí tức thời của
chuyển mạch điều khiển mode hoạt động. Khi SM0.7 bằng 0, chuyển mạch ở vị trí TERM; khi
SM0.7 = 1, mode hoạt động ở trạng thái RUN. Nếu ta cho phép chỉ mode Freeport khi chuyển
mạch ở vị trí RUN, ta có thể dùng thiết bị lập trình để giám sát hay điều khiển hoạt động của
S7-200 bằng cách thay đổi vị trí chuyển mạch sang vị trí khác.
Thay đổi truyền thông PPI sang mode Freeport.
Automanvn [TÀI LIỆU ÔN THI TỐT NGHIỆP. PHẦN 4]
PLC_Lab | Tài liệu ôn thi tốt nghiệp 6
SMB30 và SMB130 cấu hình port truyền thông 0 và 1 tương ứng, cho hoạt động Freeport và
cho phép chọn lựa tốc độ truyền, cờ ưu tiên, và số bit dữ liệu. Hình 6-8 mô tả byte điều khiển
Freeport. Một bit stop được tạo ra cho tất cả các cấu hình.
Chú ý : Even – Chẳn; Odd-Lẽ.
Hình 6-8 Byte điều khiển SM cho Mode Freeport (SMB30 or SMB130)
Truyền dữ liệu
Lệnh truyền cho phép truyền dữ liệu chứa trong bộ đệm, dữ liệu lớn nhất là 255 kí tự.
Hình 6-9 cho thấy định dạng của bộ đệm truyền.
Automanvn [TÀI LIỆU ÔN THI TỐT NGHIỆP. PHẦN 4]
PLC_Lab | Tài liệu ôn thi tốt nghiệp 7
Nếu một chương trình ngắt được gán cho sự kiện truyền hoàn tất, S7-200 tạo một ngắt (sự kiện
ngắt 9 cho port 0 và sự kiện ngắt 26 cho port 1) sau khi kí tự cuối của bộ đệm được truyền.
Ta có thể truyền mà không cần dùng ngắt (ví dụ gởi một tin đến máy in) bằng cách giám sát tín
hiệu SM4.5 hoặc SM4.6 khi việc truyền hoàn tất.
Ta có thể dùng lệnh Transmit để tạo điều kiện ngắt BREAK bằng cách thiết lập số kí tự về zero
và sau đó thực thi lệnh truyền. Điều này tạo điều kiện ngắt (BREAK) trên line for 16-bit times
ở tốc độ hiện tại. Truyền một ngắt (BREAK) được điều khiển truyền cùng cách như việc truyền
bất kì tin khác, trong đó ngắt truyền được tạo ra khi ngắt hoàn tất trong đó ngắt truyền thông
được tạo ra khi BREAK hoàn tất và SM4.5 hoặc SM4.6 xuất tín hiệu trạng thái hiện tại của
lệnh truyền.
Nhận dữ liệu
Lệnh nhận dữ liệu (Receive instruction) cho phép ta nhận dữ liệu từ bộ đệm lên đến 255 kí tự.
Hình 6-10 cho thấy định dạng của bộ đệm nhận (Receive buffer)
Nếu một chương trình ngắt được gán cho sự kiện ngắt, ta có thể nhận tin không cần dùng ngắt
bằng cách kiểm tra SMB86 (port 0) hoặc SMB186 (port 1). Byte này không bằng 0 khi lệnh
nhận không được tích cực hoặc bị ngắt. Nó sẽ là zero khi quá trình nhận tin hoàn tất, S7-200
tạo một ngắt (sự kiện ngắt 23 cho port 0 và sự kiện ngắt 24 cho port 1) sau khi kí tự cuối của bộ
đệm được nhận.
Như đã trình bày trong Table 6-13, lệnh nhận cho phép ta chọn điều kiện bắt đầu một tin và kết
thúc một tin dùng SMB86 đến SMB94 đối với port 0 và SMB186 đến SMB194 đối với port 1.
Bảng 6-13 Bytes bộ đệm nhận (SMB86 đến SMB94, và SM1B86 đến SMB194)
Automanvn [TÀI LIỆU ÔN THI TỐT NGHIỆP. PHẦN 4]
PLC_Lab | Tài liệu ôn thi tốt nghiệp 8
Automanvn [TÀI LIỆU ÔN THI TỐT NGHIỆP. PHẦN 4]
PLC_Lab | Tài liệu ôn thi tốt nghiệp 9
Điều kiện bắt đầu và kết thúc lệnh nhận.
Lệnh nhận dùng các bit của byte điều khiển nhận (SMB87 hoặc SMB187) để định nghĩa điều
kiện bắt đầu và điều kiện kết thúc của tin.
Lệnh nhận (Receive instruction) hỗ trợ nhiều điều kiện bắt đầu:
1. Dò line rỗi (Idle line detection): Điều kiện line rỗi được định nghĩa là thời gian rỗi hay thời
gian lặng trên dây truyền. Việc nhận sẽ được bắt đầu khi dây truyền có một khoảng lặng kéo
dài bằng số thời gian tính bằng milliseconds được mô tả trong ô nhớ SMW90 hay SMW190.
Khi lệnh nhận trong chương trình được thực thi, hàm nhận tin bắt đầu xác định điều kiện rỗi
line. Nếu có sự thay đổi được nhận trước khi đạt được thời gian rỗi line, hàm nhận tin sẽ bỏ qua
những kí tự này và bắt đầu dò lại thời gian rỗi line với thời gian xác định trong SMW90 hoặc
SMW190. Xem Hình 6-11. Sau khi thời gian rỗi line được xác lập, hàm nhận tin sẽ lưu tất cả
các kí tự nhận được vào trong bộ đệm tin (message buffer).
Thời gian rỗi line phải luôn lớn hơn thời gian truyền một kí tự (start bit, data bits, parity và stop
bits) ở tốc độ mô tả. Giá trị thông dụng của thời gian rỗi line thường là gấp 3 lần thời gian
truyền một kí tự.
Ta dùng việc dò thời gian rỗi như là một điều kiện bắt đầu cho giao thức nhị phân, giao thức
mà ở đó không thể mô tả kí tự bắt đầu khác hay khi giao thức xác định thời gian nhỏ nhất giữa
các tin
Automanvn [TÀI LIỆU ÔN THI TỐT NGHIỆP. PHẦN 4]
PLC_Lab | Tài liệu ôn thi tốt nghiệp 10
Setup: il = 1, sc = 0, bk = 0, SMW90/SMW190 = thời gian rỗi (idle line timeout ) tính bằng
milliseconds
Hình 6-11 Dùng việc dò thời gian rỗi để bắt đầu lệnh nhận.
2. Dò kí tự bắt đầu (Start character detection) : Kí tự bắt đầu là bất kì kí tự nào được dùng như
là một kí tự bắt đầu cho một tin. Một tin được bắt đầu dò thấy kí tự bắt đầu được mô tả trong
SMB88 hay SMB188 được nhận. Hàm nhận lưu kí tự bắt đầu trong bộ đệm nhận như là một kí
tự đầu tiên của tin. Hàm nhận tin bỏ qua bất kì kí tự nào được nhận trước khi nhận kí tự bắt
đầu. Kí tự bắt đầu và tất cả các kí tự nhận được sau kí tự bắt đầu được lưu lại trong bộ đệm tin.
Thường, ta dùng việc dò kí tự bắt đầu trong giao thức mã ASCII trong đó tất cả các tin được bắt
đầu với cùng một kí tự.
Setup: il = 0, sc = 1, bk = 0, SMW90/SMW190 = don’t care, SMB88/SMB188 = start character
3. Line rỗi và kí tự bắt đầu: Lệnh nhận có thể nhận được một tin với bắt đầu là sự kết hợp giữa
tín hiệu line rỗi và kí tự. Khi lệnh nhận được thực thi, nó sẽ tìm điều kiện rỗi line, sau khi xác
định được điều kiện rỗi line, hàm nhận tiếp tục tìm kí tự bắt đầu. Nếu có bất kì kí tự nào không
phải là kí tự bắt đầu được nhận, lệnh nhận sẽ khởi động lại việc dò thời gian rỗi. Tất cả các kí
tự nhận được trước khi nhận được thời gian rỗi được lưu giữ và trước khi nhận được kí tự bắt
đầu được bỏ qua. Kí tự bắt đầu được đặt trong bộ đệm nhận theo tuần tự của các kí tự được
nhận.
Thời gian rỗi luôn lớn hơn thời gian truyền 1 kí tự (start bit, data bits, parity and stop bits) ở
cùng tốc độ truyền. Giá trị thường gặp của thời gian rỗi thường gấp 3 lần thời gian nhận 1 kí tự.
Automanvn [TÀI LIỆU ÔN THI TỐT NGHIỆP. PHẦN 4]
PLC_Lab | Tài liệu ôn thi tốt nghiệp 11
Thường ta dùng loại điều kiện bắt đầu này khi giao thức được sử dụng có một khoảng thời gian
giữa các kí tự, kí tự ban đầu của tin là địa chỉ của thiết bị hay một cái gí đó mô tả điểm đặc biệt
của thiết bị. Cách này có ích khi có nhiều thiết bị trên đường truyền. Trong trường hợp này,
lệnh Receive ngắt gọi khi tin được bắt đầu bởi địa chỉ hay mô tả tương ứng bởi một kí tự bắt
đầu.
Setup: il = 1, sc = 1, bk = 0, SMW90/SMW190 > 0, SMB88/SMB188 = start character
4. Dò ngắt tin (Break detection): Một ngắt tin được xác định khi dữ liệu nhận được vẫn giữ giá
trị zero trong khoảng thời gian lớn hơn khoảng thời gian truyền một kí tự hoàn chỉnh. Thời gian
truyền một kí tự hoàn chỉnh được định nghĩa là tổng khoảng thời gian của các bit start, dữ liệu,
parity và stop bits. Nếu lệnh nhận được cấu hình để khởi động một tin dựa trên việc dò ngắt tin
thì bất kí các kí tự nhận sau ngắt tin này được ghi vào bộ đệm tin (message buffer). Bất kì kí tự
này nhận trước ngắt tin đều bị bỏ qua.
Thường, ta dùng việc dò ngắt tin làm điều kiện bắt đầu tin chỉ khi giao thức đó cần đến nó.
Setup: il = 0, sc = 0, bk = 1, SMW90/SMW190 = don’t care, SMB88/SMB188 = don’t care
5. Ngắt tin và kí tự bắt đầu (Break and a start character): Lệnh nhận có thể được cấu hình để bắt
đầu nhận tin sau khi nhận lần lượt điều kiện ngắt tin và kí tự bắt đầu. Nếu kí tự nhận được
không giống với kí tự bắt đầu(do người dùng định nghĩa), lệnh nhận tin sẽ quay lại dò tìm điều
kiện ngắt tin. Tất cả các kí tự nhận được trước ngắt tin được lưu giữ trong bộ đệm, kí tự nhận
sau ngắt tin bị bỏ qua. Kí tự bắt đầu được lưu vào bộ đệm cùng với các kí tự khác nhận được
theo thứ tự.
Setup: il = 0, sc = 1, bk = 1, SMW90/SMW190 = don’t care, SMB88/SMB188 = start character
6. Các kí tự khác: Lệnh nhận có thể được cấu hình để nhận các kí tự và đưa nó vào bộ đệm tin.
Đây là trường hợp đặc biệt của dò line rỗi. Trong trường hợp này, thời gian line rỗi ( ở SMW90
hoặc SMW190) được thiết lập là zero. Điều này làm cho lệnh nhận bắt đầu nhận kí tự ngay khi
lệnh được thực thi.
Automanvn [TÀI LIỆU ÔN THI TỐT NGHIỆP. PHẦN 4]
PLC_Lab | Tài liệu ôn thi tốt nghiệp 12
Setup: il = 1, sc = 0, bk = 0, SMW90/SMW190 = 0, SMB88/SMB188 = don’t care
Việc bắt đầu một tin bằng bất kì kí tự nào cho phép bộ định thời nhận tin được dùng để định
khoảng thời gian nhận một tin. Cách này có ích khi thiết bị master hoặc host dùng mode
Freeport để truyền thông và nó cần thoát ra khỏi việc truyền thông với một thiết bị slave khi
vượt quá thời gian định trước (time out) mà không nhận được đáp ứng từ thiết bị bằng slave.
Bộ định thời nhận tin bắt đầu khi lệnh nhận thực thi do thời gian rỗi line được thiết lập về zero.
Khi vượt quá thời gian đặt trước, bộ định thời nhận tin ngắt lệnh nhận tin nếu không nhận được
điều kiện kết thúc.
Setup: il = 1, sc = 0, bk = 0, SMW90/SMW190 = 0, SMB88/SMB188 = don’t care c/m = 1, tmr
= 1, SMW92 = message timeout in milliseconds
Lệnh nhận tin hỗ trợ một số cách để ngắt tin. Tin được ngắt dựa trên từng cách hoặc sự kết hợp
của các cách sau:
1. Dò kí tự kết thúc:
Kí tự kết thúc là một kí tự bất kì dùng xác định kết thúc của tin. Sau khi xác định được vị trí
đầu tin, lệnh nhận tin kiểm tra các kí tự nhận để dò kí tự cuối. Khi kí tự cuối được nhận, nó ghi
vào bộ đệm tin và dừng lệnh nhận.
Thường, ta dùng kí tự kết thúc bản tin khi sử dụng giao thức ASCII, trong đó vị trí cuối tin
được xác định bởi một kí tự đặc biệt (thuộc bảng mã ASCII) sao cho không liên quan gì đến
những kí tự dữ liệu. Ta có thể dùng việc dò kí tự kết hợp với thời gian định thời kí tự, thời gian
định thời bản tin hoặc số kí tự nhiều nhất để dừng việc nhận bản tin.
Setup: ec = 1, SMB89/SMB189 = end character
2. Thời gian định thời kí tự (Intercharacter timer):
Thời gian định thời kí tự là thời gian tính từ kết thúc một kí tự này đến kết thúc kí tự kế tiếp.
Nếu thời gian giữa các kí tự (bao gồm cả kí tự thứ 2 đạt đến giá trị tính bằng milliseconds mô tả
Automanvn [TÀI LIỆU ÔN THI TỐT NGHIỆP. PHẦN 4]
PLC_Lab | Tài liệu ôn thi tốt nghiệp 13
trong SMW92 hoặc SMW192, lệnh nhận sẽ được ngắt. Thời gian định thời kí tự được khởi
động lại trên mỗi kí tự được nhận. Xem hình 6-12.
Ta có thể dùng thời gian định thời kí tự để ngắt một bản tin đối với những giao thức không có
kí tự kết thúc bản tin. Bộ định thời này phải được thiết lập một giá trị lớn hơn thời gian truyền
một kí tự ở tốc độ truyền đang lựa chọn.
Ta có thể dùng bộ định thời kí tự kết hợp với việc dò kí tự kết thúc và đếm số kí tự lớn nhất để
ngắt việc nhận tin.
Setup: c/m = 0, tmr = 1, SMW92/SMW192 = timeout in milliseconds
Figure 6-12 Using the Intercharacter Timer to Terminate the Receive Instruction
3. Bộ định thời bản tin (Message timer):
Bộ định thời bản tin dừng bản tin sau một khoảng thời gian tính từ lúc bắt đầu bản tin. Bộ định
thời bản tin khởi động ngay khi điều kiện bắt đầu của bộ nhận được tác động. Kết quả của bộ
định thời bản tin làm dừng bản tin sau một khoảng thời gian mô tả trong SMW92 hoặc
SMW192. Xem hình 6-13.
Thường, ta dùng bộ định thời bản tin khi thiết bị truyền thông không xác định khoảng thời gian
giữa các kí tự (để ngắt giữa các kí tự) hay hoạt động thông qua một modems. Đối với modems,
ta có thể dùng một bộ định thời bản tin để mô tả khoảng thời gian lớn nhất cho phép để nhận kí
tự sau khi nhận được kí tự bắt đầu tin. Giá trị thường gặp của bộ nhận tin thường khoảng 1.5
lần thời gian cần để nhận một tin dài nhất ở tốc độ truyền hiện tại.
Automanvn [TÀI LIỆU ÔN THI TỐT NGHIỆP. PHẦN 4]
PLC_Lab | Tài liệu ôn thi tốt nghiệp 14
Ta có thể dùng bộ định thời bản tin để kết hợp với việc dò kí tự kết thúc và số kí tự lớn nhất để
ngắt tin.
Setup: c/m = 1, tmr = 1, SMW92/SMW192 = timeout in milliseconds
Hình 6-13 Dùng bộ định thời bản tin để dừng lệnh nhận bản tin
4. Số kí tự lớn nhất (Maximum character count):
Lệnh nhận phải lấy số kí tự lớn nhất được mô tả trong SMB94 hoặc SMB194. Khi số kí tự nhận
bằng hoặc lớn hơn, lệnh nhận được yêu cầu dừng. Lệnh nhận yêu cầu người dùng mô tả số kí tự
lớn nhất ngay cả khi mục đích chính không dùng nó để làm điều kiện dừng.
Điều này do lệnh nhận cần biết kích thước lớn nhất của bản tin để chuẩn bị vùng nhớ chứa, và
như thế tránh những dữ liệu xử lý trong chương trình ghi đè lên.
Số kí tự nhiều nhất có thể được dùng để dừng nhận tin đối với những giao thức trong đó độ dài
tin được biết và luôn giống nhau. Số kí tự nhiều nhất luôn được dùng kết hợp với việc dò kí tự
kết thúc, bộ định thời kí tự hay bộ định thời tin.
5. Cờ lỗi (Parity errors):
Lệnh nhận tự động dừng khi phần cứng phát tín hiệu lỗi trên cờ lỗi nhận được. Việc dò cờ lỗi
được cho phép dùng SMB30 hoặc SMB130. Không có cách nào hủy cho phép chức năng này.
6. Dừng do người dùng (User termination):
Người dùng có thể dùng việc nhận tin bằng cách reset bit cho phép trong SMB87 hay SMB187
về zero. Điều này làm dừng việc nhận tin.
Automanvn [TÀI LIỆU ÔN THI TỐT NGHIỆP. PHẦN 4]
PLC_Lab | Tài liệu ôn thi tốt nghiệp 15
Dùng ngắt kí tự để điều khiển nhận dữ liệu.
Để linh động trong hỗ trợ giao thức, ta có thể nhận dữ liệu bằng cách điều khiển ngắt kí tự. Mỗi
kí tự được nhận tạo ra một ngắt. Kí tự được nhận đặt vào SMB2, và cờ trạng thái ưu tiên (nếu
được cho phép) trong SM3.0 cho phép thực thi chương trình ngắt được gán cho sự kiện nhận kí
tự. SMB2 là bộ đệm nhận kí tự Freeport.
Mỗi kí tự nhận được trong mode Freeport được đặt vào vùng nhớ này (SMB2) đê dễ dàng truy
cập trong chương trình người dùng. SMB3 được dùng cho mode Freeport và chứa cờ lỗi được
tích cực khi cờ lỗi được do thấy trong các kí tự nhận được.
Khi ngắt kí tự được dùng ở tốc độ truyền cao (38.4 kbaud đến 115.2 kbaud), thời gian giữa các
ngắt ngắn. Ví dụ, ngắt kí tự ở tốc độg 38.4 kbaud là 260 microseconds, đối với tốc đô 57.6
kbaud là 173 microseconds, và đối với 115.2 kbaud là 86 microseconds.
Phải viết chương trình ngắn để khỏi làm mất kí tự hoặc dùng lệnh nhận.
Tip
SMB2 và SMB3 chia sẽ việc truyền thông dùng cho Port 0 và Port 1. Khi nhận một kí tự trong
Port 0 do chương trình ngắt được gọi bởi sự kiện ngắt 8, SMB2 chứa kí tự nhận được ở Port 0,
và SMB3 chứa kí tự trạng thái cờ của kí tự đó. Khi nhận được kí tự ở Port 1 do chương trình
ngắt gán cho sự kiện ngắt 25, SMB2 chứa kí tự nhận được ở Port 1 và SMB3 chứa trạng thái cờ
của kí tự này.
SMB86 đến SMB94 và SMB186 đến SMB194 là các ô nhớ đặc biệt dùng để điều khiển và đọc
trạng thái của lệnh nhận.
Automanvn [TÀI LIỆU ÔN THI TỐT NGHIỆP. PHẦN 4]
PLC_Lab | Tài liệu ôn thi tốt nghiệp 16
Các bit của byte điều khiển ngắt tin được dùng để định nghĩa tiêu chuẩn dựa trên đo tin được xác định.
Tiêu chuẩn bắt đầu và kết thúc của tin được định nghĩa. Để xác định bắt đầu của tin, cả hai điều kiện
logic phải xảy ra lần lượt (tức là sau khi phát hiện được rỗi line sẽ nhận kí tự bắt đầu). Để xác định kết
thúc của tin, các điều kiện kết thúc tin được xác định bằng lựa chọn OR. Phương trình điều kiện bắt
đầu và kết thúc được lựa chọn :
Bắt đầu tin = il * sc + bk * sc
Kết thúc tin = ec + tmr + đạt đến số kí tự đặt trước.
Automanvn [TÀI LIỆU ÔN THI TỐT NGHIỆP. PHẦN 4]
PLC_Lab | Tài liệu ôn thi tốt nghiệp 17
Automanvn [TÀI LIỆU ÔN THI TỐT NGHIỆP. PHẦN 4]
PLC_Lab | Tài liệu ôn thi tốt nghiệp 18
Automanvn [TÀI LIỆU ÔN THI TỐT NGHIỆP. PHẦN 4]
PLC_Lab | Tài liệu ôn thi tốt nghiệp 19
Automanvn [TÀI LIỆU ÔN THI TỐT NGHIỆP. PHẦN 4]
PLC_Lab | Tài liệu ôn thi tốt nghiệp 20
Truyền thông Freeport với thiết bị đọc mã vạch
Dùng S7-200 CPU để nhận dữ liệu từ bộ đọc mã vạch sử dụng mode truyền thông Freeportcủa CPU.
Ta có thể dùng mode Freeport để truyền dữ liệu để nhận dữ liệu từ thiết bị đọc mã vạch thông qua Port
0.
Ta chọn giao thức truyền thông Freeport thông qua việc dùng SMB30 (đối với Port 0) hoặc SMB130
(đối với Port 1 nếu CPU có 2 port). Ta có thể lưu thông tin lưu trữ để truyền thông vào một trong cách
byte nhớ đặc biệt này. Sau khi chọn mode Freeport, ta khai báo các thông số:
o Baud rate
o Number of data bits per character
o Parity
Thiết bị đọc mã vạch đọc dữ liệu mã vạch, tách lấy thông tin và truyền dữ liệu đến S7-200 CPU dùng
mode Freeport. Có hai bộ đệm để lưu những mã này trong bộ nhớ của S7-200 CPU. Chương trình
chuyển mạch giữa các bộ đệm khi nhận các mã vạch. Thường dữ liệu được dùng cho các quy trình,
tuy nhiên trong chương trình này dữ liệu chỉ được lưu lại.
Mô tả chương trình : Chương trình này lưu thông tin nhận được từ thiết bị đọc mã vạch vào hai bộ
đệm của S7-200 CPU. Trong chương trình này, CPU nhận thông tin qua Port 0.
Thông tin được truyền bằng bộ đọc mã vạch thông qua mã dưới dạng mã ASCII. Mã vạch được nhận
được lưu vào vùng nhớ của S7-200 CPU. Dữ liệu có thể được dùng cho chương trình.
Chương trình chứa các chương trình con sau :
MAIN : Khởi động chương trình chính.
SBR0 : Thiết lập giao thức và trỏ đến bộ đệm đển nhận dữ liệu mã vạch.
INT0 Nhận bộ đệm 0.
Automanvn [TÀI LIỆU ÔN THI TỐT NGHIỆP. PHẦN 4]
PLC_Lab | Tài liệu ôn thi tốt nghiệp 21
INT1 Nhận bộ đệm 1
Yêu cầu phần cứng : PLC S7-200 CPU 224; PC/PPI cable; Bộ chuyển đổi tùy thuộc vào giao tiếp
của bộ đọc mã vạch, ví dụ : dùng giao tiếp RS-232C theo chuẩn 9/25 chân.
Chương trình chính : Nhiệm vụ chính của chương trình chính là khởi động giao thức truyền thông,
nếu mode hoạt động là mode RUN thì tích cực SM0.7 để cho phép truyền thông Freeport mode. (Nếu
mode hoạt động được chuyển về TERM, bit SM0.7 được reset về 0 để cho phép các mode truyền
thông khác như point-to-point, hoặc PPI. Ở những mode này bộ đọc mã vạch không thể truyền thông
với S7-200 CPU.
Thông tin cần thiết lập cho giao thức truyền thông Freeport được lưu trữ ở byte nhớ SMB30 (đối với
Port 0) hoặc trong byte SMB130 (đối với Port 1 trên S7-200 CPU, nếu CPU có 2 ports).
Chương trình chính :
Automanvn [TÀI LIỆU ÔN THI TỐT NGHIỆP. PHẦN 4]
PLC_Lab | Tài liệu ôn thi tốt nghiệp 22
Ở vòng quét đầu, gọi chương trình chính.
Nếu bit SM0.7 (off nếu mode switch ở chế độ TERM, on nếu mode switch ở chế độ RUN) on,
cho phép chọn mode truyền thông Freeport bằng cách bật SM30.0 =1.
Chương trình con SBR0
Thường xuyên cho đoạn chương trình này chạy.
Đưa giá trị 9 (số nhị phân là 1001) vào vùng nhớ SMB30 (Freeport control register for Port 0).
Điều này cho phép cấu hình truyền thông với mode Freeport mode, tốc độ 9600 baud, 8 bit dữ
liệu trên mỗi kí tự, không có cờ ưu tiên.
Thiết lập VD50 hoạt động nhưu một con trỏ đến vùng nhớ VB100 (địa chỉ bắt đầu của bộ đệm
0) bằng cách di chuyển &VB100 vào VD50. (Kí tự & ở trước vùng nhớ VB100 xác định ta
đưa địa chỉ của vùng nhớ này vào VD50. VD50 sau đó hoạt động như một con trỏ đến vùng
nhớ này.) VB100 là vùng nhớ đầu tiên của bộ đệm 0.
Thiết lập VD60 hoạt động như một con trỏ đến vùng nhớ VB200 (địa chỉ bắt đầu của bộ đệm 1)
bằng cách di chuyển &VB200 vào VD60. (Kí tự & ở truớc VB200 xác định rằng ta di chuyển
địa chỉ của vùng nhớ này vào VD60. VD60 lúc đó trở đi hoạt động như một con trỏ đến vùng
nhớ này.) VB200 là vùng nhớ đầu tiên trong bộ đệm 1.
Đưa dữ liệu do con trỏ VD50 (pointer to buffer 0) chỉ đến vào vùng nhớ VD56.
Automanvn [TÀI LIỆU ÔN THI TỐT NGHIỆP. PHẦN 4]
PLC_Lab | Tài liệu ôn thi tốt nghiệp 23
Đưa 0 vào vùng nhớ VW54 để xóa (set VW54 về 0). VW54 được dùng để đếm số kí tự trong
bộ đệm 0.
Gán sự kiện ngắt 8 (Port 0: Receive character) cho chương trình ngắt INT0 để cho phép INT0
(bộ đệm 0).
Đưa 1 (số nhị phân 0001) ra QB0 để bật Q0.0 và tắt Q0.1.
Cho phép tất cả các sự kiện ngắt.
Automanvn [TÀI LIỆU ÔN THI TỐT NGHIỆP. PHẦN 4]
PLC_Lab | Tài liệu ôn thi tốt nghiệp 24
Automanvn [TÀI LIỆU ÔN THI TỐT NGHIỆP. PHẦN 4]
PLC_Lab | Tài liệu ôn thi tốt nghiệp 25
Chương trình ngắt INT0
Dùng bit SM0.0 để cho phép thực hiện đoạn chuơng trình ở từng vòng quét.
Đưa nội dung SMB2 vào vùng nhớ được chỉ trỏ tới bằng con trỏ VD56.
SMB2 chứa từng kí tự được nhận từ Port 0 hoặc Port 1 trong khi truyền thông Freeport. Trong
ví dụ này, CPU nhận thông tin thông qua Port 0.
Tăng giá trị trong VD56 (con trỏ của bộ đệm 0) lên 1 để con trỏ trỏ đến vị trí kế trong bộ đệm.
Tăng giá trị trong VW54 (biến đếm kí tự trong bộ đệm 0) lên 1.
So sánh kí tự trong SMB2 với “10” (Kí tự "LF" (linefeed) =10 (Decimal) – là kí tự xuống hàng
trong bảng mã ASCII).
Nếu kí tự trong SMB2 là "LF": di chuyển dữ liệu VD60 (trỏ đến bộ đệm 1) vào VD66 và di
chuyển 0 vào để xóa VW64. (xóa VW64 về 0). VW64 được dùng để đếm kí tự trong bộ đệm 1.
Gán sự kiện ngắt 8 (Nhận được kí tự ở Port 0) cho chương trình ngắt INT1 và cho phép ngắt
INT1 (bộ đệm nhận 1).
Di chuyển 2 (số nhị phân 0010) vào QB0 để tắt Q0.0 và bật Q0.1.
Automanvn [TÀI LIỆU ÔN THI TỐT NGHIỆP. PHẦN 4]
PLC_Lab | Tài liệu ôn thi tốt nghiệp 26
Giải thuật chương trình ngắt.
Automanvn [TÀI LIỆU ÔN THI TỐT NGHIỆP. PHẦN 4]
PLC_Lab | Tài liệu ôn thi tốt nghiệp 27
Automanvn [TÀI LIỆU ÔN THI TỐT NGHIỆP. PHẦN 4]
PLC_Lab | Tài liệu ôn thi tốt nghiệp 28
Chương trình ngắt INT1
Automanvn [TÀI LIỆU ÔN THI TỐT NGHIỆP. PHẦN 4]
PLC_Lab | Tài liệu ôn thi tốt nghiệp 29
Automanvn [TÀI LIỆU ÔN THI TỐT NGHIỆP. PHẦN 4]
PLC_Lab | Tài liệu ôn thi tốt nghiệp 30
Truyền thông điều khiển máy in dùng chuẩn Freeport
Automanvn [TÀI LIỆU ÔN THI TỐT NGHIỆP. PHẦN 4]
PLC_Lab | Tài liệu ôn thi tốt nghiệp 31
Chương trình chính
Automanvn [TÀI LIỆU ÔN THI TỐT NGHIỆP. PHẦN 4]
PLC_Lab | Tài liệu ôn thi tốt nghiệp 32
Automanvn [TÀI LIỆU ÔN THI TỐT NGHIỆP. PHẦN 4]
PLC_Lab | Tài liệu ôn thi tốt nghiệp 33
Automanvn [TÀI LIỆU ÔN THI TỐT NGHIỆP. PHẦN 4]
PLC_Lab | Tài liệu ôn thi tốt nghiệp 34
Automanvn [TÀI LIỆU ÔN THI TỐT NGHIỆP. PHẦN 4]
PLC_Lab | Tài liệu ôn thi tốt nghiệp 35
Chương trình con SBR0
Automanvn [TÀI LIỆU ÔN THI TỐT NGHIỆP. PHẦN 4]
PLC_Lab | Tài liệu ôn thi tốt nghiệp 36
Automanvn [TÀI LIỆU ÔN THI TỐT NGHIỆP. PHẦN 4]
PLC_Lab | Tài liệu ôn thi tốt nghiệp 37
Chương trình đọc dữ liệu mã vạch, xuất ra máy in.
Cấu tạo phần cứng :
Chương trình này mô tả cách truyền dữ liệu tới máy in và nhận dữ liệu từ thiết bị đọc mã vạch.
Automanvn [TÀI LIỆU ÔN THI TỐT NGHIỆP. PHẦN 4]
PLC_Lab | Tài liệu ôn thi tốt nghiệp 38
Chương trình chính :
Dùng bit SM0.1 để thực hiện network này chỉ trong 1 vòng quét. Đưa số 9 (binary 1001)vào
SMB30 (Thanh ghi điều khiển Freeport của Port 0). Giá trị này cho phép cấu hình truyền thông
mode Freeport mode, 9600 baud, 8 dữ liệu một kí tự, và không có cờ.
Đưa giá trị 1 vào VB100 để xác định độ dài của tin là 1 kí tự ASCII.
Automanvn [TÀI LIỆU ÔN THI TỐT NGHIỆP. PHẦN 4]
PLC_Lab | Tài liệu ôn thi tốt nghiệp 39
Đưa dữ liệu “A” hoặc “41” dưới định dạng số Hexal vào VB101 để mô tả kí tự chữ A trong
bảng mã ASCII.
Khi có sười dương ở I0.1, truyền dữ liệu ở bộ đệm bắt đầu tại vùng nhớ VB100 vào Port 0.
Automanvn [TÀI LIỆU ÔN THI TỐT NGHIỆP. PHẦN 4]
PLC_Lab | Tài liệu ôn thi tốt nghiệp 40
Automanvn [TÀI LIỆU ÔN THI TỐT NGHIỆP. PHẦN 4]
PLC_Lab | Tài liệu ôn thi tốt nghiệp 41
Chương trình ngắt INT0
Automanvn [TÀI LIỆU ÔN THI TỐT NGHIỆP. PHẦN 4]
PLC_Lab | Tài liệu ôn thi tốt nghiệp 42
Dạng 1 : Thiết lập truyền thông giữa máy tính với PLC có các thông số sau :
Kiểm tra Parity : không kiểm tra
Số bit dữ liệu/ 1 ký tự: 8 bit
Tốc độ truyền: 9600 Baud
Giao thức truyền thông: Freeport
Khi PLC nhận được “M”, bật các đèn từ Q0.0 đến Q0.7. Khi PLC nhận được “N”, tắt các đèn từ Q0.0
đến Q0.7. Đồng thời truyền ngược lại máy tính kí tự được nhận.
Khi PLC nhận được kí tự khác với hai kí tự trên. PLC truyền ngược lại máy tính chuỗi “Error” và cho
phép QB0 chớp tắt với tần số 1Hz.
Bài làm
Khai báo các thông số truyền thông :
Viết dưới dạng số nhị phân : 2#0000.1001
Viết dưới dạng thập lục phân : 16#09
Chương trình chính :
Automanvn [TÀI LIỆU ÔN THI TỐT NGHIỆP. PHẦN 4]
PLC_Lab | Tài liệu ôn thi tốt nghiệp 43
Automanvn [TÀI LIỆU ÔN THI TỐT NGHIỆP. PHẦN 4]
PLC_Lab | Tài liệu ôn thi tốt nghiệp 44
Chương trình ngắt :
Automanvn [TÀI LIỆU ÔN THI TỐT NGHIỆP. PHẦN 4]
PLC_Lab | Tài liệu ôn thi tốt nghiệp 45
Dạng 2 : Thiết lập truyền thông giữa máy tính với PLC có các thông số sau :
Kiểm tra Parity : không kiểm tra
Số bit dữ liệu/ 1 ký tự: 8 bit
Tốc độ truyền: 9600 Baud
Giao thức truyền thông: Freeport
Khi PLC nhận được “M”, khởi động động cơ 3 pha nối hình sao, sau 5 s chuyển sang chạy tam giác;
khi PLC nhận được “N”, tắt động cơ. Đồng thời truyền ngược lại máy tính kí tự được nhận.
Khi PLC nhận được kí tự khác với hai kí tự trên. PLC truyền ngược lại máy tính chuỗi “Error”, tắt
động cơ và cho phép Q0.5 chớp tắt với tần số 1Hz.
Bài làm
Khai báo các thông số truyền thông :
Viết dưới dạng số nhị phân : 2#0000.1001
Viết dưới dạng thập lục phân : 16#09
Chương trình chính :
Automanvn [TÀI LIỆU ÔN THI TỐT NGHIỆP. PHẦN 4]
PLC_Lab | Tài liệu ôn thi tốt nghiệp 46
Automanvn [TÀI LIỆU ÔN THI TỐT NGHIỆP. PHẦN 4]
PLC_Lab | Tài liệu ôn thi tốt nghiệp 47
Chương trình ngắt :
Automanvn [TÀI LIỆU ÔN THI TỐT NGHIỆP. PHẦN 4]
PLC_Lab | Tài liệu ôn thi tốt nghiệp 48
Dạng 3 : Hệ bao gồm PLC kết nối với máy tính (port 0 trên PLC) và máy in (port 1 trên PLC) truyền
thông dùng chuẩn Freeport. PLC điều khiển động cơ M khởi động ở chế độ sao, sau đó tự động
chuyển sang chế độ tam giác sau một thời gian nạp từ máy tính (từ 0-255s). (Nếu không, sẽ chạy thời
gian mặc định là 5s). Thời gian động cơ hoạt động kể từ khi khởi động xong là 200 giây. Tham số
truyền thông khai báo trên máy tính là:
Tốc độ truyền: 9600 Baud
Số bit dữ liệu/ 1 ký tự: 7 bit
Kiểm tra Parity: kiểm tra lẻ
Giao thức truyền thông: Freeport
PLC nhận được dữ liệu nào từ máy tính sẽ truyền ngược dữ liệu ấy về máy tính.
Khi nhấn nút Start, động cơ chạy xong PLC xuất dữ liệu ra máy in với dòng chữ “XONG” thể hiện hệ
thống đã điều khiển động cơ chạy hoàn tất.
Bài làm
Phải sử dụng PLC có 2 port truyền thông : CPU224XP, CPU226.
Tham số truyền thông : Nạp cho SMB30 (port 0) và SMB130 (port 1)
Viết dưới dạng nhị phân : 2#1110.1001.
Viết dưới dạng thập lục phân : 16#E9.
Automanvn [TÀI LIỆU ÔN THI TỐT NGHIỆP. PHẦN 4]
PLC_Lab | Tài liệu ôn thi tốt nghiệp 49
Chương trình
Automanvn [TÀI LIỆU ÔN THI TỐT NGHIỆP. PHẦN 4]
PLC_Lab | Tài liệu ôn thi tốt nghiệp 50
Automanvn [TÀI LIỆU ÔN THI TỐT NGHIỆP. PHẦN 4]
PLC_Lab | Tài liệu ôn thi tốt nghiệp 51
Automanvn [TÀI LIỆU ÔN THI TỐT NGHIỆP. PHẦN 4]
PLC_Lab | Tài liệu ôn thi tốt nghiệp 52
Chương trình ngắt :