Lý thuyết : Một trong các khả năng rất mạnh của PLC là giao tiếp truyền thông qua đó PLC có thể ghép nối với máy tính hoặc với nhau và với các thiết bị khác để trao đổi truyền số liệu ho
Trang 1TRUYềN thông PLC
A Mục đích yêu cầu
1 Nắm đợc nguyên lý truyền thông trong PLC
2 Lập trình ứng dụng giao tiếp máy tính PC với PLC - CPM1A
B Chuẩn bi :
1 Mô đun đào tạo PLC - CPM1A tối thiểu, Hoặc mô đun đầy đủ
2 Thết bị lập trình cho PLC, Cáp ghép nối
3 Máy tính và phần mềm lập trình, phần mềm giao tiếp cổng COM
C Lý thuyết :
Một trong các khả năng rất mạnh của PLC là giao tiếp truyền thông qua đó PLC
có thể ghép nối với máy tính hoặc với nhau và với các thiết bị khác để trao đổi truyền số liệu hoặc ghép nối mạng Tự động hoá và điều khiển tổng thể quá trình Lĩnh vực truyền thông là một lĩnh vực rất rộng liên quan đến nhiều vấn đề lý thuyết về mạng và thiết bị
Ngời học nên tham khảo thêm các tài liệu về mạng giới thiệu cuối tài liệu để bổ xung thêm kiến thức
1 Nguyên lý truyền số liệu nối tiếp :
Vài nét cơ bản về cổng nối tiếp.
Cổng nối tiếp RS – 232 là giao diện phổ biến rộng rãi nhất Ngời dùng máy tính PC còn gọi các cổng này là COM1, hoặc COM2 để phục vụ các ứng dụng khác nhau
Việc truyền dữ liệu qua cổng RS – 232 đợc tiến hành theo cách nối tiếp, nghĩa là các bit dữ liệu đợc gửi đi nối tiếp nhau trên một đờng dẫn Trớc hết loại truyền này có khả năng dùng cho những khoảng cách lớn hơn, bởi vì khả năng gây nhiễu là nhỏ đáng kể hơn khi dùng một cổng song song
Cổng nối tiếp RS – 232 không phải là một hệ thống bus, nó cho phép dễ dàng tạo ra liên kết dới hình thức điểm với điểm giữa hai máy cần trao đổi thông tin với nhau Một thành viên thứ ba không thể tham gia vào cuộc trao đổi thông tin này
217
Trang 2Trªn h×nh 29.1 lµ sù bè trÝ ch©n cña j¾c c¾m RS – 232 ë m¸y tÝnh PC
Ch©n
(9)
Ch©n (25)
4 20 DTR – Data Terminal
Ready
Lèi ra
218
13 1
5 1
Trang 3Hình 29-1 : Sắp xếp chân của cổng nối tiếp ở máy tính PC
Từ hình vẽ ta thấy ở ổ cắm nối tiếp RS – 232 có tổng cộng 8 đờng dẫn cha kể
đờng nối đất Trên thực tế có hai loại phích cắm, một loại có 9 chân và một loại
25 chân
Việc truyền dữ liệu xảy ra ở trên hai đờng dẫn Qua chân cắm RxD (Receive Data) máy tính nhận dữ liệu đến, qua chân TxD (Transmit Data) máy tính gửi dữ liệu đi
Các đờng dẫn tín hiệu khác đóng vai trò nh là những tín hiệu hỗ trợ khi trao
đổi thông tin và vì thế không phải trong mọi ứng dụng đều dùng đến
Việc truyền dữ liệu.
Mức tín hiệu trên chân nhận vào RxD và chân gửi ra TxD thờng nằm trong khoảng -12V đến +12V so với đất Các bít dữ liệu đợc đợc gửi đảo ngợc lại
Mức Logic "1" - "High" nằm giữa -3V và -12V
Mức Logic "0" - "Lo" nằm giữa +3V và +12V
Trên hình 29- 2 mô tả một dòng dữ liệu điển hình của một byte dữ liệu trên cổng nối tiếp RS – 232
ở trạng thái tĩnh trên đờng dẫn có điện áp -12V Một bit khởi động (Starbit) sẽ
mở đầu việc truyền dữ liệu Tiếp đó là các bit dữ liệu riêng lẻ sẽ đợc truyền đi, trong đó bít giá trị thấp Do sẽ đợc gửi trớc tiên con số của các bít dữ liệu thay
đổi giữa 5 và 8 ở cuối dòng dữ liệu còn có một bit dừng (Stopbit) để đặt ở trạng thái lối ra (-12V)
Bằng tốc độ baud (đọc là bô) ta thiết lập tốc độ truyền dữ liệu Các giá trị thông thờng là 300; 600; 1.200; 2.400; 4.800; 9.600; 19.200 baud Ký hiệu baud tơng ứng với số bit đợc truyền trong một giây Chẳng hạn nh khi tốc độ baud bằng 9.600 có nghĩa là có 9.600 bit dữ liệu đợc truyền trong mỗi giây Từ đó ta suy ra rằng còn có một bit bắt đầu và một bit dừng đợc gửi kèm theo với một byte dữ liệu Nh vậy với mỗi một byte đã có 10bit đợc gửi Nhờ vậy có thể ớc
đoán một cách dễ dàng lợng dữ liệu cực đại đã đợc truyền Với tốc độ 9.600 baud cho phép truyền nhiều nhất là 960 byte mỗi giây Qua cách ớc tính đơn giản ta cũng thấy đợc một nhợc điểm không nhỏ của cổng truyền nối tiếp là tốc
độ truyền dữ liệu bị hạn chế
219
0 1 1 0 1 0 0 1
104us
T = 1/f Baud
D6 D5 D4 D3 D2 D1 D0 D7
LOW +12v
HIGH -12v
1.04ms
Trang 4Hình 1.8 Dòng dữ liệu trên cổng RS 232 với tốc độ 9.600 baud.
Còn vấn đề nữa là khuôn mẫu (Format) truyền dữ liệu cần phải đợc thiết lập nh nhau cả ở bên gửi và cũng nh ở bên nhận Các thông số truyền đợc thiết lập trên máy PC bằng các câu lệnh trong chơng trình phần mềm Ngay cả trên WINDOWS cũng có những chơng trình riêng để sử dụng
Khi các thông số truyền dữ liệu nh : tốc độ baud, số bit dữ liệu, số bit dừng, bit chẵn lẻ (Parity) có thể đợc thiết lập một cách đơn giản
Địa chỉ cơ bản của cổng nối tiếp của máy tính PC có thể tóm tắt trong bảng các
địa chỉ sau:
COM1 (Cổng nối tiếp thứ nhất) Địa chỉ cơ bản = 3F8 (Hex) COM2 (Cổng nối tiếp thứ hai) Địa chỉ cơ bản = 2F8 (Hex) COM3 (Cổng nối tiếp thứ ba) Địa chỉ cơ bản = 3F8 (Hex) COM4 (Cổng nối tiếp thứ t) Địa chỉ cơ bản = 2F8 (Hex)
Đơng nhiên trong hầu hết các ứng dụng của giao diện nối tiếp không đòi hỏi phải lập trình cho tất cảc các đờng dẫn một cách riêng biệt Dùng cho mục đích này ta có các chip thông minh đợc dùng ở phía bên nhận và bên gửi Sau đó phải
kể đến là trong QBasic có những lệnh rất đơn giản phù hợp với phiên bản truyền
RS 232 Chẳng hạn nh có hai máy tính PC ghép nối với nhau qua cổng nối tiếp thì chỉ cần có một lệnh để gửi một byte dữ liệu đúng khuôn mẫu tới bên gửi Bằng lênh OPEN COM giao diện nối tiếp sẽ đợc mở Bằng PRINT và INPUT các dữ liệu có thể đợc gửi và đợc nhận
Ngoài ra trong ngôn ngữ bậc cao cũng có các lệnh cho phép lập trình giao tiếp nối tiếp , ví dụ ngôn ngữ C trong phần mềm CVI nh sau :
220
Ví dụ lệnh mở cổng giao tiếp COM1, đọc cổng COM1, Ghi cổng COM1 bằng ngôn ngữ C - trong phần mềm CVI :
OpenComConfig ( 1, " ", 9600, 2, 7, 2, 512, 512); // Mở cổng COM
ComRd (1, "V", 20); // Đọc cổng COM
ComWrt (1, "lenh", 25); // Ghi cổng COM
Trang 5Qua việc mở giao diện bằng lệnh OPEN cả hai đờng dẫn RTS và DTS đợc chuyển sang +12V Với khuôn mẫu truyền đã đợc thiết lập, bây giờ các dữ liệu
có thể đợc đọc vào và gửi ra
Lệnh : ComWrt (1, "lenh", 25); // Gửi ra cổng Com
// COM1 // Biến ký tự "lệnh"
// 25 ký tự
Lệnh : ComRd (1, "V", 20); //Đọc vào từ cổng COM
// COM1 // Kết quả gán cho biến ký tự V // 20 ký tự
Lệnh : CloseCom (1); // Đóng cổng giao tiếp
Lệnh CLOSE sẽ đóng giao diện nối tiếp và sau đó đờng dẫn DTR và RTS lại đợc
đặt trở lại mức low (-12V)
2 Giao tiếp máy tính với PLC qua cổng nối tiếp:
Để truyền thông các hệ thống mạng PLC hiện nay đều dựa trên nguyên lý truyền thông số truyền bit nối tiếp - nghĩa là các dữ liệu, các ký tự đều đ… ợc biến đổi thành mã nhị phân 8 bit theo bảng mã ASCII - Americain Standrd Code (đợc trình bày trong phụ lục tham khảo) sau đó đợc xử lý và truyền lần lợt từng bit một ra đờng truyền đến thiết bị nhận Tại thiết bị nhận các bít này lại đợc khôi phục, giải mã và chuyển thành dữ liệu hoặc ký tự mà bên phát đã gửi đi
Quá trình biến đổi cũng nh truyền và nhận đợc chuẩn hoá ở máy tính theo chuẩn RS232 và sau đó qua bộ chuyển đổi CIF01 chuyển thành chuẩn RS 485 nối đến PLC - CPM1
Các chuẩn này gồm các quy định về cấu trúc phần cứng, thủ tục phần mềm và các quy ớc về cấu trúc mạng, phơng pháp truy nhập …
221
Trang 63 Ghép nối máy tính với PLC - CPM1 nh hình vẽ:
Truyền thông giữa máy tính và PLC ở đây cũng theo các chuẩn giao tiếp đã nêu gồm :
• Khai báo mở cổng giao tiếp
• Truyền dữ liệu
• Nhận dữ liệu
• Đóng cổng giao tiếp
Qua trình giao tiếp giữa máy tính và PLC đợc thực hiện theo nguyên lý sau :
Đầu tiên máy tính gửi xuống PLC một khung dữ liệu có cấu trúc nh hình 29-1 khi nhận đợc khung dữ liệu này PLC sẽ tự động gửi trả lời tuỳ theo yêu cầu mà máy tính gửi xuống Quá trình cứ thế tiếp diễn
Hình 29-1 Truyền thông giữa Máy tính PC và PLC-CPM1
222
Máy tính PC
PLC Trả lời
Khung dữ liệu gửi từ máy tính xuống PLC :
"@" : Ký tự báo khởi đầu khung dữ liêu
Node No : Khai báo PLC giao tiếp với PC
Heade Code : Hai ký tự dùng để mã hoá lệnh
Texte : Các tham số; dữ liệu
FCS : Hai ký tự kiểm tra lỗi
Terminator: Ký tự "*" và ký tự CHR$13 báo kết thúc chuỗi ký tự
truyền
Khung trả lời từ PLC lên máy tính :
"@", Node, Heade code : Các ký tự gửi lặp lại
End code: Ký tự báo hoàn tất
Texte : Dữ liệu trả lời theo yêu cầu của bên gửi
Terminator: Ký tự "*" và ký tự CHR$13 báo kết thúc chuỗi ký
tự truyền
Trong chế độ truyền thông, Máy tính PC sẽ gửi lệnh xuống PLC và làm chủ quá trình PLC sẽ nhận và trả lời lại yêu cầu của máy tính
Trang 7FCS ( Frem Checksequence ):
Trong khung dữ liệu đợc truyền đi ngời ta thêm vào phần FCS ( Freme Check Sequence ) ở phía trớc ký tự kết thúc khung dữ liệu dùng để phát hiện bit lỗi xảy
ra ở đâu và bit nào bị lỗi FCS là dữ liệu số 8 bit đợc biến đổi thành 2 ký tự ASCII Các bit dữ liệu của FCS là kết quả của phép XOR bit, từ ký tự đầu của khung dữ liệu (ký tự @ ), cho đến ký tự cuối cùng của phần Text trong khung dữ liệu truyền đi ( tức là ký tự ngay trớc phần FCS)
Việc tính lại FCS ở phía thu cho phép xác định lỗi trong khung dữ liệu đã nhận
đợc
Ví dụ khung dữ liệu điều khiển đọc trạng thái đầu vào PLC :↵
223
@00RR000 00 0000000141*↵↵
Terminator Node No Head Code Text FCS
FCS Calculating range
Ví dụ Bảng tính FCS cho chuỗi ký tự trên:
Ký tự ASCII Code Bit nhị phân
XOR
Đã đổi ra mã Hexa ASCII
Trang 8Các bớc thực hành giao tiếp gia máy tính với PLC
224
Hình 29-3 Nối Máy tính với PLC
Hình 29- 2 Khung dữ liệu truyền từ Máy tinh đến PLC
1 Nối máy tính với PLC
2 Khởi động chơng trình thử cổng COM RS232 và nhắp chọn Configure
Trang 9H×nh 29-4 Mµn h×nh giao tiÕp RS232
H×nh 29-5 Chän th«ng sè cæng giao tiÕp
H×nh 29-6 §¸nh khung d÷ liÖu göi xuèng PLC
3 Khai b¸o më cæng COM
4 §¸nh khung d÷ liÖu göi xuèng PLC
Trang 10D Các bớc thực hành
1 Tìm hiểu kỹ nguyên lý truyền nối tiếp giữa Máy tính và PLC
2 Nối máy tính với PLC- CPM1 theo sơ đồ : Máy tính Cáp RS232 -CIF01 - PLC-CPM1
3 Khởi động máy tính và chơng trình thử cổng COM :
4 Khai báo mở cổng COM nhắp Configue khai báo Close :
5 Trong bảng Trasmit to device : Đánh khung dữ liệu cần truyền xuống PLC và chọn Terminator CR, chọn #Bytes to Read,
6 Gửi xuống PLC bằng cách nhắp
7 Đọc kết quả gửi lên từ PLC bằng cách nhắp
8 So sánh khung dữ liệu gửi đi và khung dữ liệu trả lời từ PLC, phân tích kết quả nhận đợc
9 Chạy kiểm tra toàn bộ các lệnh giao tiếp giữa PC và PLC - viết báo cáo nhận xét kết quả
10 Các khung dữ liệu thử nghiệm :
226
Send
Read
1) Lệnh mở cổng com : OpenComConfig (1,"", 9600, 2, 7, 2, 512,512);
2) Chuyển PLC RUN: @00SC0353*
Stop : @00SC0050*
3) Đọc đầu vào: Gửi xuống: @00RR0000000141*
Đọc lên : @00RR00000040*
4) Đọc đầu ra: Gửi xuống: @00RR0010000140*
Đọc lên : @00RR00000040*
5) Đọc thanh ghi HR
Gửi xuống : @00RH000000015B*
Đọc lên: @00RH0000005A*
Thay đổi theo trạng thái đầu vào
Thay đổi theo trạng thái đầu ra
Giá trị của thanh ghi
Trang 11227 Khung dữ liệu điều khiển đọc đầu vào/ra của một số loại PLC khác:
Khung dữ liệu điều khiển đọc thanh ghi HR
Trang 12E Câu hỏi cuối bài học
1 Giải thích nội dung quan sát đợc trong thực hành 8
2 Tính FCS của các khung dữ liệu điều khiển Khởi động PLC, điều khiển đọc
đầu vào ra, điều khiển đọc thanh ghi, điều khiển đọc bộ Timer, bộ đếm CNT…
3 Tìm hiểu các khả năng truyền thông khác của PLC - CPM1A
228
Khung dữ liệu điều khiển đọc bộ đếm và bộ thời gian :
Trang 13229