LỜI NÓI ĐẦU
---oOo---
Trong nền công nghiệp hiện nay,việc ứng dụng mạng công nghiệp để điều khiển và giám sát các thiết bị, các cơ cấp chấp hành ngày càng được sử dụng nhiều trong các nhà máy, xí nghiệp, và các dây chuyền sản xuất . Việc điều khiển một hệ thống bởi một máy tính giúp cho việc lưu giữ các giá trị hiện tại được thuận tiện hơn
Một điều thuận lợi là càng ngày càng có nhiều thiết bị chấp hành, hoặc thiết bị điều khiển như PLC,biến tần, được tích hợp các giao thức mạng như : Profibus, Can, Modbus, Từ những giao thức mạng tích hợp có sẵn trên các thiết bị trên, nhóm đã thực hiện việc tìm hiểu về mạng truyền thông công nghiệp theo giao thức Modus, từ đó ứng dụng để xây dựng một mô hình truyền thông giữa máy tính, 2 PLC S7-200 và các motor làm các cơ cấu chấp hành . Việc xây dựng nên mô hình, vừa có mục đích tìm hiểu , vừa mang lại môt cái nhìn trực quan về một hệ thống mạng công nghiệp .
Giới hạn đề tài:
§ Tìm hiểu giao thức truyền thông Modbus .
§ Phần mềm WinCC và giao thức Modbus .
§ Sự hoạt động của PLC trong hệ thống mạng Modbus .
§ Mối liên quan giữa WinCC và PLC trên mạng Modbus .
MỤC LỤC
Phần 1 : Tổng quan về Modbus .Trang 8
Một số khái niệm cơ bản về mạng công nghiệp 8
Giao thức truyền thông . 8 Các chuẩn truyền trong công nghiệp .10Mạng truyền thông Modbus 12
Khái niệm tổng quát về mạng Modbus . 12Cấu trúc đoạn tin trong giao thức Modbus 14
Phần 2 : Các thành phần mạng trong mô hình 24
Hệ thống mạng Master – Slave .24Master – WinCC .24
Ứng dụng của WinCC trong hệ thống mạng .24Các thành phần cơ bản trong WinCC .25Nguyên tắc hoạt động của WinCC .25Quy trình sử dụng WinCC 27Cách kết nối giữa WinCC với thế giới ngoài .28Quan hệ giữa WinCC và Modbus .30Slave – PLC .31
Vai trò của PLC trong hệ thống mạng .31PLC và Modbus 31Phần mềm liên kết Kep Server .35
Phần 3 : Quy trình thực hiện .41
Mục đích của quá trình .41Quy trình tạo biến trong Kep Server .41Xây dựng giao diện WinCC .43Xây dựng chương trình PLC 70Sơ đồ kết nối phần cứng . 79
Phần 4 : Quy trình sử dụng và frame truyền 80
Sự tác động đến nhánh Slave1 .80Sự tác động đến nhánh Slave2 .86
Phần 5. Tổng kết và nhận xét .89
Phần 6. Phụ lục 90
101 trang |
Chia sẻ: lvcdongnoi | Lượt xem: 13656 | Lượt tải: 2
Bạn đang xem trước 20 trang tài liệu Đề tài Mạng truyền thông công nghiệp modbus rtu pc master - 2 plc slave, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
m tác động : 01, 05, 15
Boolean
Cho phép đọc/ghi
Vùng các cuộn dây ngõ vào I .
100001 – 165536
Mã hàm tác động : 01
Boolean
Chỉ cho phép đọc
Vùng thanh ghi nội
+ 300001 – 365536
+ 300001 – 365535
+ 300001 – 365533
+ 3xxxxx.0/1 – 3xxxxx.15/16 Mã hàm tác động : 04
+ Word,Short,BCD
+ Float,Dword,Long, LBCD
+ Double
+ Boolean
Chỉ cho phép đọc
Vùng các thanh ghi duy trì (holding-register)
+ 400001 – 465536
+ 400001 – 465535
+ 400001 – 465533
Mã hàm tác động : 03,06,16
+ 4xxxxx.0/1 -4xxxxx15/16
Mã hàm tác động : 03,06,16,22
+ Word,Short,BCD
+ Float,Dword,Long, LBCD
+ Double
+ Boolean
Cho phép đọc/ghi
Khối CRC (Cyclic Redundancy Check)
Chức năng : giúp slave kiểm tra được có lỗi xuất hiện trong khung dữ liệu khi master truyền xuống hay không .
Mạng modbus thực hiện việc kiểm tra lỗi theo 2 hình thức :
Kiểm tra số lượng bit1, bit0 trong mỗi khung truyền, nhờ mã kiểm tra chẵn lẻ (Parity bit) .
Kiểm tra nội dung của toàn bộ khung truyền xem có chính xác hay không . Khi Master gửi khối dữ liệu xuống, nó sẽ dựa vào khung dữ liệu để tính mã CRC, sau đó Master gửi khung dữ liệu đó xuống, kèm theo cả mã CRC vừa tính được . Khi Slave nhận được khối tin truyền, nó cũng sẽ dựa vào khối dữ liệu nhận được, tính toán độc lập lại mã CRC , sau đó nó kiểm tra CRC vừa tính được với CRC mà Master gửi xuống . Nếu 2 mã CRC giống nhau, thì không có lỗi xảy ra . Nếu 2 mã CRC khác nhau, tức là dữ liệu nhận được là không đúng, thì Salve sẽ báo lỗi lên cho Master .
Bắt đầu
Lấy byte đầu tiên của khung dữ liệu, thực hiện phép XOR với giá trị 1111-1111-1111-1111
Kiểm tra bit thứ 16 của kết quả phép XOR ở trên
Bit 16 = 1
Bit 16 = 0
Dịch kết quả nhận được sang phải 1 bit (tức là thêm bit 0 vào phía ngoài cùng bên trái) . Phép dịch này được gọi là phép Shift Xor .
Dịch kết quả nhận được sang phải 1 bit ( thêm bit 0 vào phía ngoài cùng bên trái)
Lấy giá trị sau khi dịch phải, thực hiện phép XOR với giá trị : 1010-0000-0000-0001 .
Kiểm tra số lần dịch bit
= 8
< 8
Hoàn thành xong việc tính CRC cho byte dữ liệu đầu tiên .
Mã CRC này được sử dụng để tính tiếp cho giá trị CRC của byte dữ liệu tiếp theo (nếu có ) .
Cứ như thế, CRC của byte này sẽ được làm giá trị thực hiện phép XOR đầu tiên cho byte dữ liệu tiếp theo . Tiếp theo sau đó là các phép Shift Xor để tìm ra mã CRC mới .
Kết quả của tính toán CRC cho byte cuối cùng chính là CRC của toàn bộ khung truyền . Mã CRC của phép tính cuối cùng này sẽ được gửi đi cùng với khung dữ liệu mà Master gửi xuống Slave .
Kết thúc
Việc tính toán mã CRC được thực hiện theo nguyên tắc và trình tự như sau :
Phần 2 : CÁC THÀNH PHẦN TRONG
HỆ THỐNG MẠNG CỦA MÔ HÌNH
Hệ thống mạng Master – Slave
Đối với giao thức mạng Modbus, như đã nói ở trên, giao thức mạng này hỗ trợ các thiết bị giao tiếp với nhau theo phương thức 1 Master – nhiều Slave .
Một hệ thống mạng Master – Slave tuân theo quy tắc : Master gửi yêu cầu xuống cho các Slave . Các Slave kiểm tra địa chỉ mà master yêu cầu . Nếu đúng địa chỉ mà master muốn tác động, thì Slave sẽ kiểm tra tiếp mã hàm, sau đó thực hiện theo yêu cầu mã hàm của Master .
Ở đây, trong hệ thống mạng Modbus, ta sử dụng Master là máy tính, với phần mềm điều khiển là WinCC, và các Slave là các PLC . Vì thế ta có thể xem hệ thống mạng lúc này là WinCC làm Master, và các PLC nhận lệnh điều khiển từ WinCC để điều khiển từng cơ cấu chấp hành .
Master – WinCC :
Ứng dụng của WinCC trong hệ thống mạng :
WinCC : là từ viết tắt của Windows Control Center, là một phần mềm cho phép người sử dụng điều khiển, quan sát 1 hệ thống tự động hóa thực tế thông qua màn hình giao diện trên máy tính . WinCC có những thành phần giúp người dùng tối ưu việc điều khiển và quan sát cũng như sữa chữa các sự cố gặp phải của hệ thống
Đặc điểm nổi bật của WinCC là nó hỗ trợ các công cụ trực quan (các button, các mô hình của thiết bị như motor, van …) giúp cho người dùng có thể tạo ra một giao diện gần gũi với thực tế, dễ dàng cho người sử dụng .
Phần mềm WinCC thực hiện giao tiếp rất tốt với các PLC . Việc giao tiếp giữa WinCC và PLC được thực hiện thông qua cổng COM của máy tính . Vì thế, thông thường để giao tiếp PLC và WinCC người ta thường sử dụng cáp chuyển đổi từ chuẩn RS232 sang chuẩn RS485 (đầu RS232 gắn vào cổng COM của máy tính, và đầu RS485 gắn vào PLC ) .
Các thành phần cơ bản trong WinCC :
Các công cụ cơ bản trong WinCC bao gồm :
Communications Drivers : là các driver giúp WinCC có thể thực hiện giao tiếp với các thiết bị theo các tiêu chuẩn khác nhau, ví dụ như theo chuẩn mạng profibus, chuẩn mạng modbus…
Graphics Designer : là công cụ giúp người dùng tạo các giao diện tương thích với hệ thống thực tế, từ đó người dùng có thể thực hiện các thao tác điều khiển các thiết bị của hệ thống đó .
Tag Logging : là công cụ thực hiện việc lấy dữ liệu từ các quá trình thực thi, chuẩn bị để hiển thị và lưu trữ các dữ liệu . Từ những dữ liệu trên giúp thiết lập các thông báo, các bảng, biểu hoàn chỉnh về giá trị của quá trình .
Alarm Logging : đây là công cụ giúp cung cấp các thông tin về các lỗi phát sinh và trạng thái hoạt động toàn diện của hệ thống . Từ công cụ Alarm Logging nó giúp người dùng sớm nhận ra các tình trạng nguy cấp của hệ thống từ đó tránh và giảm thiểu rủi ro, nâng cao chất lượng cho hệ thống .
Nguyên tắc hoạt động của WinCC :
Chu trình làm việc của 1 project trong WinCC :
Một chương trình của chúng ta sẽ được tạo ra bởi các công cụ soạn thảo ( bao gồm các chương trình Graphic System, Alarm Logging, Archive System…) . Các thông số trong chương trình của ta sẽ được lưu trong vùng nhớ dữ liệu CS (Configuration database) .
Khi runtime, thì phần mềm Runtime sẽ đọc các thông tin từ vùng dữ liệu CS và Project được khởi động . Các giá trị của các biến quá trình sẽ được lưu vào vùng dữ liệu RT (Runtime database) . Các biến thực tế này sẽ được đưa đến màn hình giao diện ( tạo bởi Graphics Designer ), đến hệ thống lưu trữ...
Hình bên dưới mô tả quá trình làm việc của WinCC .
Quy trình sử dụng WinCC
Các bước dưới đây trình bày các bước cơ bản để tạo một project trên WinCC
Tạo một dự án “Project” Wincc mới .
Chọn PLC hoặc Drivers từ Tag Management .
Mục đích : để thiết lập kết nối truyền thông giữa WinCC với các thiết bị (chủ yếu là PLC ) bằng một mạng liên kết chúng với nhau trong việc trao đổi dữ liệu . Mỗi một driver có định dạng *.chn . Ví dụ : để liên kết WinCC với S7-300 ta có thể chọn driver “ SIMATIC S7 Protocol Suite.chn ”, để liên kết WinCC với S7-200 thông qua mạng Modbus ta có thể chọn driver “Modbus Serial.chn ”…
Sau khi ta chọn Driver, thì mỗi một Driver sẽ xuất hiện các loại cổng kết nối riêng của nó . Trong WinCC thì mỗi cổng được gọi là một channel . Các cổng này thông thường chỉ định cổng COM của máy tính .
Để thêm một kết nối Driver mới, ta chỉ cần nhấp phải chuột vào các cổng kết nối >> chọn New Driver Connection .
Tạo các biến ( Tag )
Mục đích : để tạo kết nối các thiết bị của một dự án trong Wincc. Có 2 loại biến chính thường sử dụng :
Biến nội : được tạo trong internal tag.
Biến ngoại (biến quá trình) : là các biến phản ánh thông tin địa chỉ của các hệ thống PLC khác nhau . Các tags này được lưu trong bộ nhớ của PLC hoặc các thiết bị khác . Chương trình Wincc luôn nối với PLC thông qua các Tags .
Đối với những project có khối lượng lớn dữ liệu, với nhiều biến, thì ta nên đặt các biến này trong từng nhóm để tiện lợi trong việc quản lý .
Tạo hình ảnh từ cửa sổ giao diện Graphic Designer
Bước tiếp theo là ta phải tạo một màn hình giao diện cho quá trình điều khiển và giám sát .
Các tạo một màn hình mới : Right click >> Graphics Designer >> New Picture
Thiết lập các thuộc tính của hình ảnh được tạo ra từ công cụ Graphics Designer
Thiết lập các thông số hiển thị khi RunTime .
Phần này có nhiệm vụ cấu hình cho quá trình Runtime, như các thông số hình ảnh hiện thị đầu tiên, hiển thị các bút điều khiển cửa sổ, thanh kéo…
Cách thực hiện :
Vào trong Computer >> Properties .
Thiết lập, chọn thông số sẽ hoạt động trong khung Startup .
Trong Tab Graphics Runtime, chọn khung hình sẽ hiển thị khi active .
Chọn các đặc tính của cửa sổ hiển thị .
Cách kết nối giữa WinCC và PLC :
Như đã trình bày ở trên, WinCC hiểu được PLC là nhờ vào các driver .
Có hai phương thức để kết nối WinCC với PLC :
Cách thứ nhất : là thông qua các driver truyền thông trực tiếp (các file *.chn ) giữa PLC và Wincc . Ví dụ, ở đây ta truyền thông WinCC với PLC thông qua mạng Modbus RTU, thì ta có thể sử dụng driver “Modbus Serial.chn”, sau đó tạo các biến quá trình (External Tags) tương ứng trên PLC, sau đó thực hiện truyền thông bình thường .
+ Ưu điểm của phương pháp truyền thông trực tiếp này là ta không cần phải thông qua bất kỳ một phần mềm trung gian nào khác .
+ Nhược điểm của nó là tốc độ truyền thông tin giữa WinCC và PLC là tương đối chậm khi phải xử lý nhiều tag .
Cách thứ hai : là thông qua một phần mềm trung gian OPC để thực hiện việc truyền dữ liệu theo giao thức mạng tương ứng .
+ Nguyên tắc của phương thức thứ 2 là : WinCC không liên kết trực tiếp với PLC mà nó liên kết trực tiếp với OPC (nhờ vào driver “OPC.chn”) . Trong OPC sẽ tạo ra các biến liên kết trực tiếp với PLC theo giao thức truyền thông mà ta mong muốn .
+ Ưu điểm của phương thức này là tốc độ truyền dữ liệu khá nhanh.
+ Nhược điểm của nó là cần phải có thêm một phần mềm OPC để thực hiện liên kết . Các phần mềm OPC thường dùng là : phần mềm PC Access, KEP Server EX…
Hình dưới đây sẽ trình bày nguyên lý của phương thức này :
WinCC
OPC soft ware
tags
PC
PLC
tags
Trong bài luận văn này, sẽ tập trung vào sử dụng phương pháp thứ 2 để kết nối giữa WinCC và PLC, thông qua phần mềm KEP Server EX .
Quan hệ giữa WinCC và Modbus
WinCC kết nối trực tiếp với PLC S7-200 thông qua giao thức Modbus :
Như đã trình bày ở phần 3.5, thì đây chính là cách kết nối thứ nhất để kết nối WinCC với PLC .
Điều ta cần là một driver giao tiếp giữa WinCC – PLC theo giao thức modbus-rtu . Trong phiên bản WinCC V7.0 không hỗ trợ driver này . Chỉ trong phiên bản WinCC V5.0 ta mới có thể tìm được driver “Modbus serial.chn” .
Một vài đặc điểm của kênh truyền thông này :
Driver “Modbus Serial.chn” hỗ trợ 8 kênh (cổng) truyền thông . Mỗi kênh hoạt động tương ứng với mỗi cổng COM (từ COM1 đến COM9 )của máy tính . Các kênh đều hỗ trợ hai kiểu kết nối : point – to – point và multi point .
Driver này hỗ trợ 3 kiểu dữ liệu của Tag :
+ Binary tags .
+ Unsigned 16 bit value .
+ Signed 16 bit value .
Việc xác định địa chỉ của Tag quá trình được xác định nhờ vào địa chỉ của tag đó trên PLC S7-200 .
Sau khi thiết lập địa chỉ các tag quá trình, xây dựng màn hình giao diện, các thuộc tính cho các đối tượng trên màn hình, ta sẽ có được sự kết nối giữa WinCC và PLC theo giao thức Modbus RTU mong muốn .
WinCC kết nối với PLC S7-200 nhờ vào OPC thông qua giao thức modbus
Đây là cách kết nối WinCC và PLC thứ 2 .
Việc kết nối được thực hiện nhờ phần mềm OPC : KEP Server EX V4.0
Một cách tổng quát về quá trình thực hiện :
+ Đầu tiên, trong phần mềm KEP Server EX V4.0, ta sẽ tạo các biến có địa chỉ tương ứng với địa chỉ có trên PLC . Chú ý rằng địa chỉ này chính là địa chỉ modbus của các biến đó trên PLC .
+ Thứ 2, từ driver “OPC.chn” ta tạo các biến, mà các biến này được dẫn ra từ phần mềm KEP .
+ Như thế, khi ta tác động lên các biến của WinCC thì các biến trên KEP cũng thay đổi, từ đó giá trị của các thanh ghi, của các bit trên PLC cũng thay đổi theo .
Cách sử dụng phần mềm KEP như thế nào, cách gán giá trị từ một biến của KEP cho WinCC thực hiện như thế nào, sẽ được trình bày rõ ở các phần bên dưới .
Slave – PLC :
Vai trò của PLC trong hệ thống mạng :
PLC S7-200 (224 DC/DC) trong hệ thống mạng Modbus đóng vai trò trạm Slave.
PLC S7-200 và mạng Modbus :
Cấu hình cho PLC thành các trạm Slave.
Sử dụng thư viện Modbus Protocol .
Hai khối chức năng chính để lập trình cho S7-200 thành Slave Modbus gồm: MBUS_INIT và MBUS_SLAVE.
Khối MBUS_INIT.
Thiết lập các thông số cho một S7_200 làm Slave trong mạng Modbus.
+ MBUS_INIT hoạt động khi ngõ vào EN được tích cực mức cao.
+ Mode quy định giao thức với giá trị 0 ứng với PPI, và 1 đối với Modbus protocol.
+ Addr quy định địa chỉ của từng trạm modbus có giá trị từ 1=>247.
+Baud: chấp nhận các giá trị 1200, 2400, 4800, 9600, 19200, 38400, 57600, or 115200.
+ Party bit chẵn lẽ
: không bít chẵn lẽ.
: bit lẽ.
: bit chẵn.
+ Delay thêm thời gian vào thời gian time out của mỗi thông điệp.
+ MaxIQ cho phép người dùng truy cập vào từng Input và Output .
+ MaxAI cho phép người dùng truy cập vào vùng nhớ Analog.
· 0 cho CPU 221
· 16 cho CPU 222
· 32 cho CPU 224, 226, và 226XM
+ MaxHold xác định độ rộng vùng nhớ V có thể truy cập.
+ Holdstart vùng nhớ V bắt đầu ứng với địa chỉ vùng nhớ là 40001 sao cho không trùng với vùng nhớ của chương trình đã dùng trong khối Modbus slave.
Khối MBUS_SLAVE
Khối này báo hiệu cho Slave đã nhận tín hiệu từ Master.
+Done Lên mức 1 khi Slave đã nhận một yêu cầu từ Master.
+ Error thông báo lỗi khi có sự cố trên đường truyền.
Hai khối chức năng trên được lập trình từ 3 chương trình con (MBUS_INT,MBUS_SLAVE,MBUS1) và 2 chương trình ngắt (MBUS2,MBUS3) cần 799Byte để thực hiện các chương trình này.
Chương trình con MBUS_INT: Xử lý tất cả các tín hiệu ngõ vào (EN,Mode,Addr,Baud,Parity,Delay,MaxIQ,MaxAI, MaxHold, Holdstart) thỏa các thông sô quy định để hổ trợ giao thức Modbus ,và xử lý các lỗi xảy ra khi truyền thông theo mã quy định xuất ra Done và Error. Trong chương trình này tạo lập các địa chỉ Modbus cho các vùng nhớ người dùng đưa vào.
Chương trình con MBUS_SLAVE: Xử lý cho ngõ vào En (cho phép khối hoạt động) và ngõ ra Done ,Error liệt kê các lỗi của trạm Slave khi nhận được bản tin từ Master.
Chương trình con MBUS1:Tính toán CRC cho mỗi bản tin được truyền thông.
Chương trình ngắt MBUS2 : Restar lại cổng truyền thông sau khi Slave nhận được bản tin từ Master.
Chương trình ngắt MBUS3: Gửi bản tin phản hồi từ Slave lên Master sau khi Slave nhận được bản tin từ Master rồi Restart lại cổng truyền thông.
Chương trình lập trình cho hai trạm Slave:
PLC địa chỉ 2.
PLC địa chỉ 3.
Phần mềm liên kết Kep Server :
Giới thiệu phần mềm.
Đây là phần mềm trao đổi dữ liệu giữa các thiết bị công nghiệp với những ứng dụng hoạt động trên nền Window(WinCC, HMI,SCADA…).
Phần mềm cung cấp những phương pháp đã được chuẩn hóa cho phép những ứng dụng trong công nghiệp trao đổi dữ liệu một cách nhanh chóng và mạnh mẽ. Nó đáp ứng được những yêu cầu về chất lượng kết nối truyền thông trong công nghiệp ( độ ổn định, tính chính xác và linh hoạt…).
Sử dụng phần mềm.
Cách tạo một kênh truyền thông.
Open Kep.
Kích chuột vào để tạo các kênh, mỗi kênh bao gồm nhiều tag , đặt tên cho kênh.
Chọn thiết bị là kênh kết nối của hãng nào hay của giao thức nào.
Chọn cổng truyền thông và các thông số truyền thông.
Như vậy ta đã hoàn thành xong một kênh truyền theo giao thức đã định nghĩa
4.2.2 Cách tạo một thiết bị truyền thông:
Sau khi tạo một kênh ,thực hiện tạo các thiết bị trong kênh đó.
Kích chuột vào để tạo một thiết bị mới.
Đặt tên cho thiết bị
Chọn chế độ truyền thông.(Modbus_thực hiện trong luận văn).
Đặt địa chỉ cho trạm Slave.
Cách tạo một tag :
Kích chuột vào để tạo một tag mới.
Đặt tên địa chỉ (địa chỉ là địa chỉ của vùng nhớ Modbus).
Phần 3 : QUY TRÌNH THỰC HIỆN
Mục đích của quá trình :
+ Mô hình được tạo nên với mục đích mô phỏng phương thức truyền thông trong mạng Modbus . Với Master là 1 máy tính với phần mềm điều khiển là WinCC, 2 Slaves là 2 PLC S7-200 điều khiển dưới nó là 2 cơ cấp chấp hành (motor DC và biến tần ) .
+ Trên Master, ta sẽ xây dựng màn hình điều khiển và giám sát toàn bộ hệ thống .
+ Trên các Slave, ta sẽ viết các chương trình nhận các lệnh từ Master, từ đó đưa ra các tín hiệu điều khiển các cơ cấu chấp hành bên dưới .
+ Khi có một lỗi truyền thông xuất hiện, hoặc một lỗi từ phía cơ cấp chấp hành, thì trên Master cũng đưa ra những cảnh báo lỗi cho người sử dụng .
Quy trình tạo biến trong Kep Server :
Tạo biến trong Kep .
Kênh truyền dẫn.
Tốc độ Baud 9600.
Data 8 bit.
Parity Even.
Stop bit 1.
Giao thức Modbus Serial.
Thiết bị (gồm hai PLC)
+ PLC (điều khiển biến tần): ID là 2 ,model Modbus.
+PLC ( điều khiển động cơ): ID là 3,model Modbus.
Và các tag được sử dụng trong chương trình.
Ta được các tag sau:
PLC_BIENTAN
PLC_DONGCO.
Xây dựng giao diện WinCC
Ở phần trên đã trình bày quy trình để xây dựng nên 1 project trong WinCC . Trong phần này sẽ trình bày chi tiết quá trình mà nhóm đã thực hiện, tạo nên giao diện cho mô hình mô tả mạng truyền thông Modbus mà nhóm đã thực hiện .
Bắt đầu
+ Khời động chương trình WinCC .
+ Tạo một project mới .
+ Chọn Driver truyền thông “OPC.chn” để liên kết WinCC và PLC thực hiện thông qua phần mềm OPC .
Bước 1
+ Tạo một kết nối mới (connection ) để bắt tay truyền thông giữa WinCC và Kep server .
Bước 2
+ Tạo các biến (tags) trên WinCC có địa chỉ được gán từ các biến của Kep server .
+ WinCC sẽ gửi lệnh đến PLC bằng cách tác động lên các biến này
Bước 3
+ Thiết kế màn hình giao diện điều khiển cho hệ thống .
+ Lập trình cho các đối tượng trên màn hình giao diện .
Bước 4
Bước 5
+ Chạy thử màn hình giao diện, kiểm tra kết nối giữa WinCC và Kepserver .
+ Từ WinCC gửi một lệnh đến PLC bằng cách tác động vào một đối tượng, kiểm tra sự thay đổi trên PLC .
Bước 6
Bước 7
Kết thúc
Các bước thực hiện được trình bày như sơ đồ dưới đây:
Bước 1 : Chọn driver + chọn kênh truyền thông .
Khởi động WinCC lên, tiến hành tạo một project mới, chọn đường dẫn, đặt tên .Project này được đặt tên là MOD_BUSPROTOCOL .
Thêm driver “OPC.chn” vào cho project . Việc này thực hiện bằng cách :
Chuột phải vào Tag Management >> Add New Driver… >> Hộp thoại Add New Driver xuất hiện >> kích chọn driver “OPC.chn” >> Open .
Lúc này driver OPC đã được thêm vào project .
Trong driver OPC.chn có hỗ trợ 1 kênh truyền thông “OPC groups (OPCCN Unit #1) ” . Kích đúp chuột vào driver OPC sẽ quan sát được kênh này .
Bước 2 : Tạo liên kết đến trình KEP Server EX thông qua 1 connection
Sau bước này, chúng ta sẽ có được sự liên kết giữa WinCC với phần mềm KEP
Sự liên kết này được tạo ra bởi một kết nối . Cách tạo ra kết nối được thực hiện bằng cách :
Chuột phải vào kênh OPC Groups (OPCHN Unit #1) >> chọn New Driver Connection… >> hộp thoại Connection Properties xuất hiện >> đặt tên cho Connection . Ở đây tên của connection được đặt như hình bên dưới
Nhấp vào button Properties để xác lập thuộc tính cho Connection này .
Hộp thoại New Connection Properties xuất hiện . Trong hộp thoại này, ta sẽ xác nhận tên của phần mềm OPC . Một điều cần nói thêm, đó là khi sử dụng phần mềm OPC, thì lúc đó WinCC sẽ đóng vai trò là một Client, còn phần mềm OPC (ở đây là phần mềm KEP ) sẽ đóng vai trò là một Server .
Các thông số nhập vào hộp thoại Properties sẽ xác nhận phần mềm KEP Server EX là Server cho WinCC .
Các thông số được nhập như hình bên dưới :
Sau khi nhập các thông số cho Server, ta nhấn nút nhấn Test Server để kiểm tra sự tồn tại của server trên máy tính . Nếu thông báo hiện ra là Test OK, thì lúc đó kết nối giữa WinCC và KEP đã được thiết lập .
Sau khi test thành công, nhấn OK 2 lần để quay trở lại cửa sổ WinCC Explorer . Lúc này ta có thể thấy được kết nối KEP_MOD đã được thiết lập .
Bước 3 : Tạo các biến tương ứng với KEPServer EX .
Trong phần ở trên đã trình bày cách tạo biến trong Kep Server tương ứng với các địa chỉ Modbus trong PLC . Ở đây WinCC sẽ tạo ra biến có đường dẫn đến đến các biến Kep Server này .
Trình tự để tạo nên một biến trong WinCC được thực hiện như sau :
Chuột phải vào kết nối KEP_MOD, trình đơn đổ ra, ta chọn New Tag . Hộp thoại Tag properties xuất hiện với các thông số như hình bên dưới .
Ta đặt tên biến sao cho dễ gợi nhớ, và chọn kiểu dữ liệu thích hợp (trong ô Data Type ) cho từng biến .
+ Đối với các biến mô tả ngõ vào, ngõ ra của PLC, ta chọn kiểu dữ liệu Binary .
+ Đối với các biến mô tả các vùng nhớ trên PLC, ta chọn kiểu dữ liệu Word
Tiếp theo, trong khung Address, ta cần chọn địa chỉ của biến, ở đây, địa chỉ của chúng ta sẽ là đường dẫn của biến vừa tạo đến biến trong chương trình Kep Server . Ta kích chọn nút Select để nhập đường dẫn .
Đường dẫn đến biến của Kep Server theo quy tắc :
“Tên Channel.Tên Device.Tên Biến”
Chọn kiểu dữ liệu thích hợp :
Kiểu Boolean value cho các biến ngõ vào, ra của PLC .
Kiểu Unsigned 16bit cho các vùng nhớ trên PLC
Sau khi đã chọn xong địa chỉ, ta nhấn OK để trở về cửa sổ giao diện của WinCC Explorer .
Trong bài luận văn này, các biến được sử dụng bao gồm :
+Tất cả các biến ngõ vào của nhánh mạng biến tần và nhánh mạng DC
Được ký hiệu dạng : I00BT…I15BT cho các ngõ vào nhánh biến tần , I00DC…I15DC cho các ngõ vào nhánh DC .
+ Các ngõ ra điều khiển bao gồm :
Ngõ ra điều khiển nhánh biến tần : Q00BT…Q05BT, Q10BT
Ngõ ra điều khiển nhánh DC : Q00DC…Q03DC,Q10DC
+ Các vùng nhớ báo hiệu bao gồm :
Vùng nhớ của nhánh biến tần : VB790BT, LOI_INT_BT,LOI_SLAVE_BT,TANSO_3PHA .
Vùng nhớ của nhánh DC : VB790DC,VB794DC, LOI_INT_DC,LOI_SLAVE_DC .
Bằng cách tương tự như trên, ta có thể tạo được tất cả những biến mà ta muốn điều khiển và giám sát . Sau khi tạo tất cả các biến, và gán địa chỉ chính xác cho từng biến, ta sẽ có được các biến ngoại cung cấp cho WinCC , có địa chỉ của các vùng trong PLC được cấp từ Kep Server .
Bước 4 : Tạo màn hình giao diện của chương trình điều khiển .
Màn hình giao diện được chia làm 3 phần chính mô tả được trọn vẹn sự điều khiển của Master và sự hoạt động của từng Slave . Bao gồm : giao diện “Master.dll” mô tả cấu trúc tổng quát của toàn hệ thống, giao diện “PLCDC” mô tả hoạt động của nhánh PLC – Động cơ DC, và giao diện “PLCBT” mô tả hoạt động của nhánh PLC-Biến tần .
Cách tạo một hình ảnh giao diện mới bằng cách :
Chuột phải vào công cụ Graphics Designer >> New picture >> Sau đó thay đổi tên của picture . Tập tin này có đuôi được định dạng *.dll
Kích đúp chuột vào picture vừa tạo, cửa sổ Graphics Picture xuất hiện .
Sử dụng các công cụ button, I/O field…, ta tạo ra giao diện như ta mong muốn
Màn hình “Master” : cung cấp cái nhìn tổng quan về cấu trúc của hệ thống
Mô hình mạng của hệ thống được trình bày trong khung SYSTEM OVERVIEW . Trong khung này thể hiện được cấu trúc phân cấp của hệ thống mạng . Master là Máy Tính (WinCC) và 2 Slaves là 2 PLC S7-200 . Và các cơ cấu chấp hành là 1 motor DC, 1 motor 3 pha với sự điều khiển của biến tần .
Khung ERROR COMMUNICATION thông báo cho người dùng các lỗi phát sinh trong quá trình truyền thông và quá trình gừi lệnh từ PC xuống PLC .
Trong khung Slave1 :
+ Vùng I/O Field của Communication được gán với biến LOI_INT_BT . Khung này sẽ báo mã lỗi nếu lỗi xuất hiện trong quá trình truyền thông .
+ Vùng I/O Field của Data Sent được gán với biến LOI_SLAVE_BT . Khung này sẽ báo lên mã lỗi, nếu có lỗi xuất hiện trong quá trình truyền yêu cầu từ master xuống slave .
Tương tự cho khung Slave2 :
+ 2 vùng I/O Field cũng được gán với 2 biến tương ứng LOI_INT_DC và LOI_SLAVE_DC .
Khung SYSTEM PARAMETER thể hiện các thông số của hệ thống : bao gồm trạng thái kết nối và địa chỉ của Slave trong mạng .
Mỗi đèn báo kết nối được liên kết với biến Q10BT (cho nhánh Biến tần), và Q10DC (cho nhánh DC) . Q1.0 trên mỗi thiết bị chính là đèn báo từ chương trình của PLC khi mà PLC kết nối thành công với Master theo đúng giao thức mạng Modbus .
Cách thiết lập thuộc tính, và gán biến được thiết lập như hình bên dưới
2 nút nhấn SLAVE1=> PLC – INVERTER và SLAVE2=>PLC-DC giúp người dùng đi đến điều khiển và quan sát trạng thái hoạt động của từng nhánh SLAVE .
Đường dẫn của 2 nút này được đưa đến vị trí của 2 giao diện SLAVE .
Như vậy, ta đã hoàn thành được việc tạo giao diện và thiết lập được các thuộc tính cho màn hình giao diện Master .
Màn hình “Slave1” : điều khiển các thông số hoạt động của biến tần, từ đó điều khiển động cơ 3 pha . Có thành phần hồi tiếp từ cơ cấu chấp hành để giám sát tốc độ thực tế của động cơ .
Khung CONTROL PANEL : là bảng giúp người dùng điều khiển motor theo tốc độ mong muốn . Khung này cũng có thể xem như là khung giúp Master gửi lệnh ghi tác động xuống Slave .
Thông số SPEED CHOOSEN giúp lựa chọn tần số hoạt động của động cơ . Có 3 mức tốc độ tương ứng với 3 mức tần số : 50Hz, 100Hz, và 150Hz . Việc chọn tốc độ thực hiện nhờ các nút nhấn . Cũng cần nói thêm là để thực hiện chọn tốc độ, thì trước tiên trên biến tần, ta sẽ quy định trước chế độ hoạt động của biến tần . 2 bit điều khiển tốc độ được chọn là Q0.0 và Q0.1 của PLC – biến tần 3 giá trị tần số ở trên phải được nhập sẵn trên biến tần . Vì thế các nút chọn tốc độ được lập trình như sau
+ SPEED1 : cho Q00BT = 1, Q01BT = 0 : chọn mức tốc độ 50Hz .
Trong khung R.FREQUENCY (tần số tham chiếu) thể hiện tần số mong muốn của người dùng .
+ Tương tự, ta cũng lập trình cho 2 nút nhấn còn lại :
SPEED2 : cho Q00BT = 0,Q01BT = 1:chọn mức tần số 100Hz .
SPEED3 : cho Q00BT = 1, Q01BT = 1 : chọn mức tần số 150 Hz .
+ Nút nhấn biểu tượng quay thuận, quay ngược : việc điều khiển quay thuận nghịch của motor được điều khiển qua biến tần nhờ 2 ngõ ra của PLC – biến tần là Q0.2, Q0.3 tương ứng với 2 biến Q02BT, Q03BT . Việc lập trình cho 2 nút này cũng giống như lập trình cho nút chọn tốc độ
Quay thuận : cho Q02BT = 1, Q03BT = 0.
Quay ngược : cho Q02BT = 0, Q03BT = 1 .
+ Các đèn báo hiệu trạng thái ngõ ra được hiển thị nhờ vào các biến Q0.0 đến Q0.3 được sử dụng . Thế nên việc chớp tắt của từng đèn được gán theo sự thay đổi của từng ngõ ra tương ứng .
Thông số WRITE TO V MEMORY : thông số này được dùng để mô tả việc ghi một giá trị đến một vùng nhớ trên PLC .Ô nhớ được chọn là VB790 .
+ Việc ghi/đọc giá trị được thực hiện nhờ vùng I/O Field, vùng này lấy giá trị từ biến VB790BT tương ứng .
Các thông số ngõ ra : thông số này báo hiệu trạng thái On/Off của ngõ vào được thể hiện qua các đèn báo .
+ Sự chớp sáng của mỗi đèn được gán với một đèn tương ứng ở ngõ ra .
Khung SYSTEM MONITOR :
Thể hiện các thiết bị cấp trường được sử dụng trong nhánh mạnh này . Bao gồm biến tần (Inverter) điều khiển một động cơ 3 pha .
Ngoài ra, trong khung SYSTEM MONITOR còn giám sát được tốc độ quay thực tế của động cơ . Tốc độ của động cơ được đo bởi một cảm biến từ, và tín hiệu xung đếm được từ cảm biến được đưa về ngõ vào I0.0 của PLC Slave1, và giá trị tần số thực tế sẽ được lưu vào ô nhớ byte VB783 .
Giá trị của đồng hồ hiển thị tần số thực của motor được gán với biến TANSO_3PHA (ứng với nội dung của ô nhớ word VW782 của PLC ) . Đồng hồ này được lấy ra bằng cách : trong cửa sổ Object Palette của màn hình Graphic Designer >> chọn Control >> kích chuột vào màn hình , hộp thoại Insert a Control xuất hiện >> ta chọn đối tượng WinCC Gause Control . Kéo to kích thước của đối tượng để được một hình như mong muốn .
Sau khi kéo đồng hồ ra, ta thay đổi các thông số của nó sao cho thích hợp, đồng thời gán thuộc tính Value của nó cho biến đo tốc độ động cơ .
Do đó, khi giá trị của biến TANSO_3PHA thay đổi, thì giá trị của đồng hồ tần số cũng thay đổi theo .
Các nút nhấn :
+ BACK TO NETWORK SYSTEM : quay trở lại màn hình tổng quan hệ thống .
+ BACK TO SLAVE 2 : nhảy đến màn hình điều khiển của Slave2 .
+ INFORMATION : cung cấp các thông tin về mạng của Slave1, và cách sử dụng các chức năng trên màn hình điều khiển Slave1 .
Ta đã hoàn thành xong việc thành lập màn hình điều khiển cho nhánh Slave1, tiếp tục xây dựng cho nhánh Slave2 .
Giao diện cho nhánh “Slave2” : Điều khiển On/Off và chiều quay cho motor DC dựa trên việc tác động đến ngõ ra thông qua 2 vùng nhớ (VB790 và VB794 ) . Có tín hiệu báo về khi motor không hoạt động như mong muốn .
Khung CONTROL PANEL : giúp người dùng điều khiển on/off và chiều quay của motor DC .
Tab “DIRECTION CONTROL” có các nút nhấn điều khiển sự quay của motor . Các nút này khi được nhấn sẽ làm thay đổi giá trị của 2 vùng nhớ VB790 và VB794 trên PLC . Và 2 vùng nhớ này được dùng làm giá trị để thay đổi chiều quay và trạng thái On/Off của motor .
+ Nút FORWARD : điều khiển motor chạy thuận . Nút này được nhấn sẽ gửi giá trị xuống cho VB790 = 65635 và VB794 = 0 . 2 giá trị này giúp motor chạy thuận .
Bởi vì việc quay của motor được điều khiển bởi vùng nhớ trên PLC, thế nên trong Tab “V MEMORY STATUS” hiển thị lên nội dung của 2 ô nhớ này . Nội dung của 2 ô nhớ được hiện lên nhờ vùng I/O Field . Vùng này lấy giá trị từ biến VB790DC và VB794DC của WinCC .
Tab “OUTPUT STATUS” hiển thị giá trị của các ngõ ra Q0.0 và Q0.1 của PLC 2 . 2 tín hiệu này chính là tín hiệu điều khiển sự hoạt động của motor .
Khung SYSTEM MONITOR : cho biết cơ cấu chấp hành của nhánh mạng này là động cơ DC . Đồng thời nó cũng báo động nguy hiểm khi có sự cố từ phía motor (motor không chạy ) .
Việc báo động được thực hiện nhờ ngõ ra Q0.5 của PLC-DC, khi giá trị của cảm biến không thay đổi (cảm biến được thay thế tương đương với ngõ vào I0.0), thì đèn Q0.5 sẽ sáng, và biến báo động sẽ được bật .
+ Thuộc tính Display của 2 nhãn báo động được gán theo sự thay đổi của ngõ ra Q0.5 trên PLC (dựa theo tag Q05DC của WinCC) .
Cuối cùng, ta đã hoàn thành việc tạo giao diện cho nhánh Slave2 . Giao diện hoàn chỉnh được trình bày như hình bên dưới .
Giao diện báo các lỗi phát sinh của hệ thống
Các trường hợp được xem là lỗi bao gồm :
Slave1 mất kết nối với Master (được thể hiện bởi Q1.0 của PLC Slave1 = 0 )
Slave2 mất kết nối với Master (được thể hiện bởi Q1.0 của PLC Slave2 = 0 ).
Động cơ DC của nhánh Slave2 không hoạt động khi master gửi lệnh xuống (được thể hiện bởi Q0.0 = 1 và Q0.5 = 1) .
Động cơ 3 pha của nhánh Slave1 quay không đúng trong khoảng tần số yêu cầu (được thể hiện bởi Q0.3 = 1 hoặc Q0.2 = 1 và giá trị tần số nhận về nằm ngoài vùng tần số giới hạn ) .
Việc báo lỗi được thực hiện với ý tưởng như sau : khi có bất kỳ một lỗi nào trong 4 lỗi ở trên được phát hiện, thì ngay lập tức trên màn hình sẽ báo động, và người sử dụng sẽ quan sát được lỗi gì đang được phát sinh tại vị trí nào .
Quy trình tạo một giao diện báo lỗi được thực hiện nhờ công cụ Alarm Logging trên WinCC . Dưới đây sẽ trình bày quy trình tạo dựng 1 Alarm báo cáo các lỗi của hệ thống .
Bước 1 : Khởi động công cụ Alarm Logging . Kích đôi chuột vào công cụ này, cửa số Alarm Logging được mở ra .
Bước 2 : Tạo một bảng thông báo mới, bằng cách : vào File >> Select Winzard >> OK >> Next . Lúc này một bảng thông báo nhập các thông số xuất hiện, ta nhập như hình bên dưới .
Nhấn Next >> Next >> Finish .
Bước 3 : Lúc này, ta quay trở về lại của sổ Alarm Logging . Ta thiết lập thuộc tính cho 2 cột hiển thị (cột THONG BAO : hiển thị các thông báo lỗi, và cột VI TRI LOI : hiển thị vị trí phát sinh lỗi ) .
Kích chuột trái vào “User text box”, 2 đối tượng “Message text” và “Point of error” xuất hiện . Đổi tên 2 đối tượng này thành “THONG BAO” và “VI TRI LOI” có chiều dài là 30 ký tự .
Bước 4 : gán giá trị báo lỗi cho các biến có kiểu Binary . Cần chú ý rằng, ở đây do một sự báo lỗi cần có nhiều điều kiện để xảy ra, thế nên ta sẽ tạo ra các biến nội báo lỗi .
+ Biến LOI_SLAVE1 : báo lên 1 khi biến Q10BT = 0 : báo lỗi xuất hiện ở Slave1 .
+ Biến LOI_SLAVE2 : báo lên 1 khi biến Q10DC = 0 : báo lỗi xuất hiện ở Slave2 .
+ Biến LOWER_FRE : báo lên 1 khi : biến Q03BT = 1, hoặc Q02BT = 1 và giá trị tần số đọc lên (nhờ biến TANSO_3PHA) nhỏ hơn tần số mong muốn .
+ Biến UPPER_FRE : báo lên 1 khi : biến Q03BT = 1, hoặc Q02BT = 1 và giá trị tần số đọc lên (nhờ biến TANSO_3PHA) lớn hơn tần số mong muốn .
Bước 5 : Nhập các câu thông báo, và vị trí lỗi cho từng sự kiện lỗi (cho từng Tag lỗi ), như hình bên dưới .
Bước 6 : Trên màn hình giao diên WinCC, tạo khung cửa sổ hiện thị thông số Alarm .
Mở công cụ Graphics Designer . Trong khung Object Pattern >> Smart Object >> chọn công cụ Control . Kích chuột vào màn hình thiết kế, cửa sổ Insert a Control xuất hiện . Ta chọn WinCC Alarm Control . Nhấn OK để xác nhận . Lúc này hộp thoại Properties xuất hiện .
+ Trong Tab General, ta chọn thông số như hình dưới :
+ Trong Tab Message List : ta chọn các thông số như hình bên :
Nhấn OK để chấp nhận .
Lúc này, việc xác lập Alarm cho màn hình WinCC đã hoàn thành .
Việc tiếp theo là xác lập các thuộc tính Runtime cho Alarm .
Bước 7 : Thiết lập thông số Runtime cho Alarm . Vào trong thuộc tính của Computer, chọn kích chọn Alarm như hình bên dưới .
Như vậy, ta đã hoàn thành việc tạo một giao diện báo lỗi khi có các lỗi xuất hiện .
4. Xây dựng chương trình PLC.
4.1 Chương trình PLC trạm Slave điều khiển và giám sát động cơ 3 pha.
4.1.1 Lưu đồ giải thuật.
BẮT ĐẦU
Cấu hình cho khối MBUS_INT ID=2
Gọi khối MODBUS_SLAVE
KẾT THÚC
*** Cấu hình trạm Slave địa chỉ là 2 trong giao thức Modbus.
Bắt đầu
Q0_2=1
Hoặc Q0_3=1
Gọi chương trình ngắt time và HSC_0 tính toán tần số động cơ 3 pha .
Kết thúc
Sai
Đúng
*** Lập trình giám sát tốc độ động cơ 3 pha.
4.1.2 Code chương trình PLC .
4.2 Chương trình PLC trạm Slave giám sát khởi động động cơ DC.
4.2.1 Lưu đồ giải thuật.
*** Lưu đồ giải thuật cho trạm Slave địa chỉ 3.BẮT ĐẦU
Cấu hình cho khối MBUS_INT ID =3
Gọi khối MODBUS_SLAVE
KẾT THÚC
*** Lưu đồ giải thuật cho việc giám sát khởi động động cơ DC.
Bắt đầu
VB790=255
T37= ON delay 2s
Đọc xung tốc độ cao HSC_0
Trong vòng 30 s liên tuc.
đ
HC0 >=1
Q0_4=1 (Báo hiệu động cơ được khởi động an toàn)
Q0_5 =1(Báo hiệu động cơ khởi động có trục trặc).
Kết thúc
Sai
Đúng
Đúng Sai
Đúng
4.2.2 Code chương trình PLC.
5.Sơ đồ kết nối phần cứng
Phần 4 : Quy Trình Sử Dụng Và Frame Truyền .
Sự tác động đến nhánh Slave 1 (nhánh PLC – Biến tần )
Mọi tác động của master lên Slave1 có cấu trúc khung yêu cầu cơ bản như sau
Start bit ( = 1)
Dữ liệu của khung truyền
Bit chẵn lẻ
Stop bit
Địa chỉ Slave1
(0x02)
Mã hàm tác động
Dữ liệu mà master muốn truyền
Mã lỗi CRC
Địa chỉ vùng nhớ trên Slave
(địa chỉ Modbus)
Dữ liệu của mã hàm
Quay trở lại màn hình giao diện điều khiển nhánh PLC biến tần .
Ở đây, ta sẽ đi phân tích cấu trúc của 1 frame truyền cho một tác vụ đặc trưng trên màn hình điều khiển .
Nút SPEED1
Khi nhấn vào SPEED1, ta sẽ ghi giá trị lên các ngõ ra Q0.0 và Q0.1 của PLC1
Q0.0 = 1 và Q0.1 = 0
* Khung yêu cầu mà master gửi xuống Slave được xác định như sau:
Byte xác định địa chỉ Slave1 có gía trị là 0x02 (hex) .
Byte mã hàm được Master truyền xuống có giá trị là : 0x0F . Có chức năng ghi giá trị lên một chuỗi bit ngõ ra .
Địa chỉ Modbus của Q0.0 là 000001, của Q0.1 là 000002 . Thế nên giá trị của byte địa chỉ bắt đầu của ngõ ra mà Master tác động là 0x0001(hex)
Byte xác định số lượng ngõ ra muốn tác động có giá trị là : 0x0002(hex)
Số lượng byte dữ liệu theo sau là 1 byte, thế nên byte này có giá trị 01 (hex)
Dữ liệu muốn ghi là mức 1 xuống cho Q0.0 và mức 0 xuống cho Q0.1, thế nên byte xác định giá trị master ghi vào Slave là : 01 (hex)
Dựa vào bảng tính CRC kèm theo, nhập vào thông số chuỗi dữ liệu “020F000100020101”, ta tính được mã CRC của đoạn yêu cầu từ Master là : 6282 (hex) .
Như vậy, khi nhấn vào nút SPEED1, thì Master sẽ gửi 1 Frame truyền như sau đến Slave :
02
0F
0001
0002
01
01
6282
Khi nhận được khung yêu cầu, PLC sẽ truy cập vào vùng nhớ của nó, để tác động theo yêu cầu của Master, đồng thời, tính toán mã CRC của khung dữ liệu đáp ứng, để đảm bảo tính chính xác của khung truyền, việc xác định khung truyền được xác định như sau :
Byte xác định địa chỉ của Slave1 có giá trị là 02 (hex) .
Byte xác định mã hàm có giá trị là : 0F (hex) .
Địa chỉ đầu tiên của ngõ ra mà Master tác động có giá trị : 0001 (hex) .
2 byte xác định giá trị số lượng ngõ ra của Slave1 được master tác động có gía trị là : 0002 (hex)
Dựa vào bảng tính mã CRC, ta nhập vào chuỗi : “020F00010002”, kết quả được mã CRC = 85F9 (hex) .
Như vậy, sau khi nhận yêu cầu từ Master thì Slave 1 sẽ gửi lên một khung đáp ứng có nội dung như sau :
02
0F
0001
0002
85F9
* Các nút nhấn SPEED2, SPEED3, STOP : việc xác định cấu trúc frame truyền được xác định tương tự như trên *
Phép tác động lên vùng nhớ VB790
Trong mục tác động lên vùng nhớ VB790, có 2 lần tác động, khi nhập vào khung Write và nhấn Enter, thì Master sẽ gửi giá trị xuống cho vùng nhớ VB790 . Liền sau đó, Master sẽ thực hiện hàm đọc gía trị từ vùng nhớ này lên và hiển thị lên màn hình WinCC .
Cần chú ý một điểm là, trong WinCC, thì vùng nhớ VB790 được quy định dưới dạng dữ liệu Word . Vì thế, khi nhập một giá trị, thì giá trị Byte thấp sẽ được nhập vào vùng nhớ byte VB791 của PLC, và giá trị Byte cao sẽ nhập vào vùng nhớ VB790 của PLC .
* Giả sử ở đây, ta nhập giá trị 78 (hex) vào cho ô nhớ byte VB790 trên PLC, thì việc frame truyền được xác định như sau :
Byte địa chỉ Slave1 có giá trị : 0x02 (hex) .
Byte mã hàm khi viết cho một thanh ghi có giá trị : 0x06 (hex) .
Vùng nhớ VB790 có địa chỉ modbus là 400006 . Nên giá trị 2 byte xác định địa chỉ vùng nhớ có giá trị là : 0x1A86 (hex) .
Giá trị dữ liệu ghi xuống là 0x7800 (hex) .
Ta nhập khung dữ liệu : “02061A867800” vào bảng tính mã CRC, ta được kết quả CRC = 4D08 (hex) .
Như vậy, khi nhập giá trị vào ô Write để ghi xuống ô VB790, thì frame truyền được gửi là :
02
06
1A86
7800
4D08
Khi nhận được khung yêu cầu, thì Slave 1 sẽ đáp ứng lại cho Master một khung có nội dung được xác định như sau :
Địa chỉ của Slave1 : 02 (hex) .
Mã hàm : 06 (hex)
Địa chỉ của vùng nhớ VB790 : 1A86 (hex) .
Giá trị của vùng nhớ sau khi được ghi : 7800 (hex) .
Mã lỗi CRC : 4D80 (hex) .
Như vậy, khung đáp ứng mà Slave1 gửi lên Master có nội dung như sau :
02
06
1A86
7800
4D08
Khi master đọc giá trị từ ô nhớ VB790 lên, thì khung yêu cầu mà master gửi xuống được xác định như sau :
Địa chỉ của Slave1 : 02 (hex) .
Ở đây, Master cần đọc nội dung của một thanh ghi trên Slave, nên byte mã hàm có giá trị : 03 (hex) .
Byte xác định địa chỉ của thanh ghi mà Master muốn đọc có giá trị : 1A86(hex)
2 byte xác định số lượng thanh ghi mà Master muốn đọc có giá trị : 0001 (hex)
Nhập khung dữ liệu : “02031A860001” vào bảng mã tính CRC, ta được kết quả : CRC = 62C8 (hex) .
Như vậy, nội dung của khung yêu cầu mà master gửi xuống là :
02
03
1A86
0001
62C8
Nội dung của khung đáp ứng mà Slave1 gửi lên khi nhận được yêu cầu được xác định như sau :
Byte xác định địa chỉ của Slave1 : 02 (hex) .
Byte xác định mã hàm : 03 (hex)
Byte xác định số lượng byte dữ liệu theo sau có giá trị : 02 (hex) .
2 byte xác định nội dung của ô nhớ VB790 có giá trị : 7800 (hex) .
Nhập khung dữ liệu “0203027800” vào bảng tính mã CRC, ta nhận được CRC có giá trị : DE44 (hex) .
Như vậy, khung đáp ứng mà Slave1 gửi lên lại cho Master có nội dung như sau
02
03
02
7800
DE44
Việc đọc giá trị tần số từ biến tần lên cũng được thực hiện tương tự như đối với vùng nhớ VB790, chỉ khác một điều là địa chỉ của ô nhớ lưu giá trị tần số là 400002 (ó 1A82 (hex)) .
Phép đọc giá trị từ khối ngõ vào Input
Việc xác định khung truyền khi Master thực hiện việc đọc giá trị từ ngõ vào được thực hiện như sau :
Byte xác định địa chỉ của Slave1 có giá trị : 0x02 (hex) .
Byte mã hàm giúp master đọc giá trị của ngõ vào có giá trị : 0x02 (hex) .
Giả sử ta muốn đọc ngõ ra I0.0 (có địa chỉ modbus là 100001), thì 2 byte xác định địa chỉ ngõ ra muốn đọc có giá trị là 0x86A1(hex) .
Số lượng ngõ ra khi đọc lên là 1, thế nên 2 byte xác định số lượng ngõ vào cần đọc có giá trị là 0x0001 (hex) .
Nhập nội dung dữ liệu “020286A10001”vào bảng tính CRC, ta có giá trị CRC là : C153 (hex) .
Như vậy, khi muốn đọc ngõ ra I0.0 của Slave1, thì master sẽ gửi xuống khung đáp ứng có nội dung :
02
02
86A1
0001
C153
Khi nhận được khung yêu cầu từ Master, thì Slave1 sẽ gửi lên lại một đáp ứng, giả sử lúc đó giá trị I0.0 = 1, thì khung đáp ứng mà Slave gửi lên có nội dung như sau :
Địa chỉ của Slave 1 : 02 (hex) .
Mã hàm mà master tác động là : 02 (hex) .
Byte xác định số lượng byte mang nội dung của ngõ vào, có giá trị : 01 (hex) .
Byte mang nội dung của ngõ vào I0.0 có giá trị : 01 (hex) .
Nhập khung dữ liệu : “02020101” vào bảng tính CRC, ta được kết quả : CRC = 600C (hex) .
Như vậy, khung đáp ứng mà Slave1 gửi lên cho Master có nội dung như sau :
02
02
01
01
600C
Sự tác động đến nhánh Slave2 (PLC – Động cơ DC)
Màn hình giao diện điều khiển nhánh Slave2 :
Việc đọc giá trị các ngõ vào và ngõ ra của PLC ở nhánh này cũng được thực hiện với 1 frame truyền tương tự như nhánh Slave1, chỉ khác một điểm, là đó với nhánh này, địa chỉ của Slave sẽ là 0x03 (hex) .
Ở đây, có một điểm khác biệt so với Slave 1, là ta có phép tác động đến nhiều vùng nhớ trên PLC trong việc điều khiển động cơ (khi nhấn các nút nhấn FORWARD, REVERSE, và STOP) . Ta sẽ đi phân tích để xác định frame được truyền .
Việc điều khiển động cơ được thực hiện nhờ vào 2 ô nhớ VB790 và VB794 . Giả sử khi ta nhấn nút yêu cầu motor quay thuận (nút FORWARD), thì lúc này master sẽ ghi giá trị xuống cho 2 vùng nhớ này trên PLC : VB790 = 65535, VB794 = 0 . Frame truyền được xác định như sau :
Địa chỉ của Slave2 có giá trị là : 0x03 (hex) .
Mã hàm để cho master tác động lên nhiều thanh ghi là 0x10(hex) . Thế nên byte mã hàm có giá trị là 0x10 (hex) .
Bởi vì ô nhớ VB790 có địa chỉ modbus là 400006, thế nên 2 byte xác định địa chỉ ô nhớ bắt đầu ghi có giá trị là 0x1A86 .
Bởi vì ta cần ghi tới ô nhớ VB794, thế nên số lượng thanh ghi cần tác động đến là 3 . Vậy nên 2 byte xác định số lượng thanh ghi mà master tác động đến có giá trị là 0x0003 .
Bởi vì ta đọc tất cả 3 thanh ghi có dạng dữ liệu word, thế nên cần 6 byte để lưu giá trị,vậy nên byte xác định số lượng byte lưu nội dung của các ô nhớ có giá trị : 06 (hex) .
Tiếp theo sau sẽ là giá trị mà ta ghi đến các ô nhớ :
2 byte xác định giá trị cho VB790 : 0xFFFF (hex)
2 byte xác định giá trị cho VB792 : 0x0000 (hex)
2 byte xác định giá trị cho VB794 : 0x0000 (hex) .
Nhập khung dữ liệu : “03101A86000306FFFF00000000” ta được mã CRC = 7336 (hex) .
Như vậy, khung truyền mà Master gửi xuống Slave 2 khi nhấn nút “FORWARD” có nội dung :
03
10
1A86
0003
06
FFFF
0000
0000
7336
Khi nhận khung yêu cầu của Master, thì Slave2 sẽ gửi lại khung đáp ứng được xác định như sau :
Địa chỉ của Slave 2 : 03 (hex) .
Mã hàm mà Master tác động : 10 (hex) .
2 byte xác định địa chỉ bắt đầu của vùng nhớ mà master tác động (địa chỉ modbus của ô nhớ VB790) : 1A86 (hex) .
2 byte xác định số lượng thanh ghi của Slave2 được master tác động : 0003 .
Nhập khung dữ liệu : “03101A860003” vào bảng tính CRC, ta được kết quả : 671B (hex) .
Như vậy, khung đáp ứng mà Slave2 gửi lên lại Master có nội dung :
03
10
1A86
0003
671B
Trên đây đã trình bày cách mà Master gửi một lệnh tác động xuống cho từng Slave, mỗi Slave sẽ dựa vào khung địa chỉ để xác định xem khung dữ liệu đó có phải được gửi cho mình hay không, nếu không, nó sẽ không thực hiện, nếu đúng, nó sẽ nhận frame truyền, và tiếp tục kiểm tra mã hàm và vùng nhớ bị tác động để thực hiện yêu cầu ghi hoặc đọc của master .
Phần 5 : TỔNG KẾT, NHẬN XÉT,
HƯỚNG PHÁT TRIỂN CỦA ĐỀ TÀI .
1.Tổng kết .
- Đã xây dựng được mô hình phần cứng cũng như phần mềm trong mạng truyền thông công nghiệp Modbus với PC Master điều khiển 2 PLC và giám sát cơ cấu chấp hành.
- Giám sát hệ thống với việc thông báo lỗi mỗi khi có sự cố về mạng cũng như cơ cấu chấp hành thông qua Master với trình điều khiển Arlam trong WinCC.
+ Với hệ thống khi có sự cố hư hỏng trạm Slave ( Mất nguồn, mất kêt nối…).
+ Với cơ cấu chấp hành động cơ DC của Slave_2:Giám sát được sự hoạt động của động cơ khi điều khiển ON/OFF.
+ Với cơ cấu chấp hành là biến tần của Slave_1:Giám sát được tốc độ khi động cơ 3 phase có sự bất ổn định về tốc độ.
2.Nhận xét.
- Mô hình chạy chưa ổn định do sự cố về Master (Lỗi giao tiếp phần cứng : Cổng com máy tính…).
-Chưa khái thác hết các sự cố về lỗi cơ cấu chấp hành.
3.Hướng phát triển của đề tài.
- Xây dựng mô hình hoàn chỉnh với ứng dụng cụ thể trong thực tế hơn.
- Giám sát và kiểm tra nhiều trạm với nhiều cơ cấu chấp hành khác nhau.
- Xây dựng hệ thống với PLC S7-300 đóng vai trò Master để tăng tính ổn định và linh hoạt trong điêu khiển.
PHẦN 6. PHỤ LỤC
Biến tần HITACHI SJ100.
Inverter SJ100 002 LFR
Mô tả :
- Biến tần thuộc họ SJ100
Công suất : 0.2 KW
Dùng điện 3 pha 200V
Phiên bản Nhật Bản
Chức năng các chân kết nối ngoài :
Hàng trên : (L 6 5 4 3 2 1 PCS) : cổng vào Logic
. PCS : +24 V , 30mA max
. 6,5,4,3,2,1 : tín hiệu vào logic (+24V)
. L : GND cho cổng vào logic
Hàng dưới : (H O OI L FM CM2 12 11)
. H ,O, OI , L : cổng vào analog
.. H : +10V tham khảo
.. O : tín hiệu vào analog , hiệu điện thế : 0 đến 9.6 V
.. OI : tín hiệu vào analog , dòng điện : 4 đến 19.6 mA
.. L : GND
. FM : ngõ ra PWM (A/D) : 0 đến 10V , 1mA
. CM2,12,11 : ngõ ra Logic
.. 12,11 : ngõ ra logic : .50mA max khi ON dòng
. 27V max khi OFF hiệu điện thế .
.. CM2 : GND
Sử dụng biến tần :
a. Kết nối phần cứng :
- Nối nguồn xoay chiều 220V vào 2 chân L1 và L3
- Nối động cơ vào 3 chân U V W
b. Điều chỉnh thông số biến tần : Sau đây là một số thông số thường dùng :
- Thông số cơ bản : (chọn địa chỉ , nhấn FUNC , thay đổi giá trị , nhấn STR)
. F01 : tần số ngỏ ra (0 to 360Hz) , mặc định chỉnh 0.0
. F02 : thời gian tăng tốc đến giá trị đặt (0.1 to 3000s) , mặc định : 10
. F03 : thời gian giảm tốc từ giá trị đặt xuống 0 , mặc định : 10
. F04 : chiều quay : 00 : quay thuận
01 : quay nghịch
Thông số mở rộng :
. A01 : .. 00 : điều chỉnh tần số bằng biến trở trên Panel
.. 01 : điều chỉnh tần số bằng kết nối bên ngoài
.. 02 : lấy giá trị tần số của F01
. A02 : .. 02 : cho phép chạy bằng nút Run trên Panel
.. 01 : cho phép điều khiển chạy bằng tay
. A03 : tần số cơ bản : mặc định : 60 (min 50Hz)
. A04 : tần số cao nhất : mặc định : 60 (max 360Hz)
. A11 : tần số bắt đầu khi điều khiển mở rộng
. A12 : tần số kết thúc khi điều khiển mở rộng
. A41 : .. 00 : chỉnh moment bằn tay
.. 01 : chỉnh moment tự động
. A42 : giá trị moment (0 đến nửa tần số gốc )
. A71 : lựa chọn điều khiển PID , set 01
A72 : độ lợi P (0.2 to 5) , mặc định : 1.0
. A73 : độ lợi I (0 to 150s), mặc định : 10
. A74 : độ lợi D (0 to 100s), mặc định : 00
. B87 : Cho phép nút Stop , set 00
. B91 : lựa chon Stop mode ,
.. 00 : có thời gian giảm tốc rồi ngưng
.. 01 : quay tự do rồi ngưng
. B31 : lựa chọn khóa phần mềm
.. 00 : khóa hết trừ B31 khi C15 ON
.. 01 : khóa hết trừ B31 và F01 khi C15 ON
.. 02 : khóa hết trừ B31
.. 03 : khóa hết trừ B31 và F01
. C15 : khóa phần mềm
. C18 : reset biến tần
Theo dõi qua màng hình : (chọn địa chỉ rồi RUN )
. D01 : tần sồ ra
. D02 : dòng ra
. D03 : chiều quay
. D04 : dữ liệu hồi tiếp PID
Hướng dẫn sử dụng một số chức năng cơ bản :
a.Điều khiển Run , Stop dùng nút trên panel , ngỏ ra cố định tần số:
Chỉnh tần số ngỏ ra F01 (0 đến 360Hz)
Chỉnh chiều quay F02 (00: quay thuận , 01 :quay nghich )
Chỉnh A01 : 02 (lấy giá trị của F01 làm ngỏ ra)
Chỉnh A02 : 02 ( Cho phép nut Run trên Panel hoạt động)
Nhấn nút Run , Stop để chạy và dừng động cơ .
b.Điều khiển Run , Stop dùng nút trên panel , ngỏ ra thay đổi tần số :
Chỉnh chiều quay F02
Chỉnh A01 : 00 (Dùng biến trở trên Panel)
Chỉnh A02 : 02
Chỉnh tần cơ bản A03 : (min 50Hz)
Chỉnh tần số cao nhất A04 (Mã 360Hz)
Nhấn nút Run , Stop để chạy , dừng
Điều chỉnh biến trở thay đổi tốc độ .
c.Điều khiển tần số bằng kết nối ngoài , Run , Stop bằng Panel :
Kết nối các chân H O L của module mở rộng với biến trở .
Chỉnh A01 : 01 (Lấy giá trị thiết bị đầu cuối ngoài)
Chỉnh A02 : 02 (điều khiển chạy , dừng bằng Panel)
Chỉnh A11 , A12 để có giá trị bắt đầu và lớn nhất của biến trở ngoài
Nhấn nút Run , Stop để chạy , dừng
Điều chỉnh biến trở thay đổi tốc độ .
d.Điều khiển tần số, Run , Stop bằng kết nối ngoài
Kết nối các chân H O L của module mở rộng với biến trở .
Chỉnh A01 : 01 (Lấy giá trị thiết bị đầu cuối ngoài)
A02 : 01 ( điều khiển chạy , dừng bằng tay)
Chỉnh A11 , A12 để có giá trị bắt đầu và lớn nhất của biến trở ngoài
Chỉnh C01 : 00 (chân 1 module ngoài điều khiển quay thuận)
Chỉnh C02 : 01 (chân 2 module ngoài điều khiển quay nghịch )
Chỉnh C11, C12 :
00 (động cơ quay khi nối chân 1,2 với L)
01 ((động cơ dừng khi nối chân 1,2 với L)
Điều khiển chân 1,2 để chạy , dừng
Điều chỉnh biến trở thay đổi tốc độ .
e.Hiệu chỉnh thời gian tăng, giảm tốc :
Chỉnh F02 : thời gian tăng tốc (0.1 đến 3000s)
Chỉnh F03 : thời gian giảm tốc (0.1 đến 3000s)
f.Điều chỉnh moment :
Chỉnh A41 :
00 : chỉnh moment bằng tay .
01 : chỉnh moment tự động
Chỉnh A42 : giá trị moment
g.Điều khiển PID :
Chỉnh A71 : 01 (lựa chọn điều khiển PID)
Chỉnh A72 : độ lợi P (0.2 to 5)
Chỉnh A73 : độ lợi I (0 to 150s)
Chỉnh A74 : độ lợi D (0 to 100s)
h.Điều khiển tốc độ cài đặt trên biến tần bằng kết nối ngoài.
Biến tần hổ trợ chạy lên đến 16 tốc độ khác nhau bằng các ngõ vào thông minh qua kết nối bên ngoài.
Cài đặt tần số tối đa cho các chế độ qua thông số A04.
Cài đặt tần số cho các tần số theo bảng bên dưới.
Speed 0 được cài đặt tần số vào A20
Speed 1 được cài đặt tần sô vào A21
…….
Speed 15 được cài đặt tần số vào A35.
Cài đặt mã hàm các chân input từ C01->C06 ứng với 6 chân input.
Bộ chuyển đổi RS 232/ 485(PSM-ME-RS232/RS485-P)
1. Chức năng:
- Chuyển đối chuẩn RS232 sang RS 485 .
- Là interface giao tiếp giữa Master với Slave qua chuẩn RS485.
2. Sử dụng:
- Nguồn nuôi sử dụng nguồn 24V DC.
-Đấu dây bên ngoài theo chuẩn RS 485 truyền hai dây tín hiệu A và B là ngõ ra của các Slave. (Slave đấu theo nguyền tắc Multi drop).
- Chỉnh tốc độ Baund qua 8 Swich bên trong.
Bảng quy ước tốc độ Speed (Kbit/s).
- Trong luận văn sử dụng Master điều khiển 2 Slave nên ta bật điện trở đầu cuối (Teminate) để tránh xung đột dòng tín hiệu lúc truyền không cân bằng do nhiễu.
C.Tài liệu tham khảo.
1) Mạng truyền thông Công Nghiệp TS Hoàng Minh Sơn.
2) Tự động hóa trong Công Nghiệp TS. Trần Thu Hà – Ks Phạm Quang Huy ( NXB Hồng Đức).
3) Các Website :
- www.siemen.com
- www.Modicon.com
-
4) Manual S7-200 CPU 224.