Trong bối cảnh thiên tai, dịch bệnh, người lao động bị cấm túc, việc tiếp cận với hiện trường thực tế sản xuất để thực hiện dự án về tự động hóa công nghiệp là rất hạn chế. Bởi vậy, thao tác kết nối với bộ điều khiển vật lý kiểm tra chương trình điều khiển và ứng dụng SCADA tại nơi chế tạo, đặc biệt tại hiện trường nhà máy lại càng khó khăn hơn. Trong đào tạo ngành Tự động hóa Công nghiệp, khi không có điều kiện thực hành trực tiếp tại phòng thí nghiệm cũng khiến cho bài thực hành của người học bị gián đoạn.
Giải pháp sử dụng bộ điều khiển ảo thay thế cho bộ điều khiển vật lý cả trong thực hiện lập trình, kiểm tra chương trình điều khiển, hay trong giảng dạy và thí nghiệm sẽ khắc phục được các hạn chế nêu trên.
Bài viết đưa ra khái niệm về bộ điều khiển ảo, sau đó đi sâu vào phân tích cấu trúc, đặc tính kỹ thuật và cách sử dụng bộ điều khiển PLCSim Advanced của Simatic. Cuối cùng là phân tích cấu trúc tương tác của bộ điều khiển ảo với thế giới bên ngoài.
Hy vọng bài viết sẽ mang lại những kiến thức hữu ích cho các kỹ sư lập trình, nhà tích hợp hệ thống, nhà máy, giảng viên và sinh viên ngành Tự động hóa Công nghiệp và áp dụng không chỉ trong bối cảnh giãn cách xã hội mà cả trong nhịp sống bình thường.
Sử dụng bộ điều khiển ảo có thể thay thế cho bộ điều khiển vật lý |
II- Bộ điều khiển ảo là gì?
Bộ điều khiển ảo là bộ điều khiển có hệ điều hành, thay vì chạy trên thiết bị vật lý PLC công nghiệp thì được chạy trên máy tính thông thường, sử dụng các tài nguyên của máy tính và giữ nguyên các chức năng, hiệu năng như khi chạy trên PLC vật lý. Các ứng dụng SCADA từ đây có thể truy cập vào các PLC ảo này để thu thập dữ liệu và điều khiển giám sát. Đến khi triển khai thực tế, không cần phải thay đổi, dù là một phần nhỏ từ chương trình điều khiển trên PLC cho đến chương trình ứng dụng SCADA.
Theo truyền thống, từ trước tới nay, sau khi hoàn thành lập trình chương trình điều khiển, kỹ sư có thể dùng cáp mạng ethernet để nối máy tính với PLC vật lý và đổ chương trình xuống chạy thử. Tuy nhiên sau một thời gian dài, người ta đã nghĩ ra cách làm sao không cần PLC vật lý mà có thể kiểm tra được các thuật toán lập trình hoạt động có đúng hay không. Dần dần xuất hiện các kỹ thuật cho phép thực hiện điều này. Phổ biến là có hai cách để kiểm tra lập trình điều khiển:
• Dùng trực tiếp phần mềm lập trình. Phần mềm phải có 2 chế độ, chế độ lập trình và chế độ mô phỏng (simulation). Khi muốn kiểm tra chương trình thì người dùng chuyển sang chế độ mô phỏng sau khi compile không có lỗi nào.
• Cách thứ hai là xây dựng một phần mềm chạy riêng biệt trên cùng máy tính và khi đổ chương trình xuống PLC, người dùng phải chọn đường dẫn đặc biệt, đại loại như là đường dẫn localhost.
Phần mềm trong cách thứ hai gọi là PLC mô phỏng. Kỹ thuật này gặp nhiều hạn chế sau:
• Dùng chung địa chỉ IP với máy tính;
• Không tạo được nhiều PLC;
• Hạn chế khi kết nối với SCADA. Đối với loại PLC dùng giao thức khác với Modbus TCP/IP thì phải dùng thêm phần mềm trung gian;
• Ngoài ra, PLC mô phỏng thông thường không thể so sánh với PLC ảo về hiệu năng, tốc độ xử lý, vòng quét, bộ nhớ, truyền thông giữa các CPU. Vì vậy PLC mô phỏng chỉ thích hợp với kiểm tra những bài toán điều khiển tuần tự, logic và không bị chi phối bởi thời gian thực.
Điểm chung giữa PLC mô phỏng và PLC ảo là hỗ trợ các hàm API để giao tiếp với các phần mềm khác để mô phỏng quá trình, đối tượng điều khiển.
III- Nguyên lý hoạt động của PLCSim Advanced
PLCSim Advanced là phần mềm nằm trong hệ sinh thái TIA Portal của Simatic, mượn tài nguyên của máy tính, sử dụng công nghệ ảo hóa (virtualization) để tạo ra các PLC ảo khác nhau, phân bố trên các máy tính khác nhau với các địa chỉ IP khác nhau.
Hình 1 biểu diễn các dòng PLC phổ biến trên thị trường hiện nay là S7-1500 và tất cả các dòng này được ảo hóa bằng phầm mềm PLCSim Advanced, sẵn sàng chứa chương trình được xây dựng cho tất cả các dòng PLC S7-1500 vật lý.
H1: Các dòng PLC vật lý S7-1500 và PLC ảo của Simatic |
Phần mềm PLCSim Advanced có thể cài đặt và chạy độc lập với công cụ lập trình Step 7 trong TIA Portal. Điều này có nghĩa là PLCSim Advanced có thể chạy trên một máy tính khác (không cần cài đặt TIA Portal) so với máy tính lập trình có cài đặt TIA Portal.
Sau khi cài PLCSim Advanced, trên máy tính xuất hiện 2 thành phần sau (hình 2):
1) Card ethernet có tên “Siemens PLCSIM Virtual Ethernet Adapter”: Đây là card mạng ảo được tạo ra để các PLC ảo thông qua đó có thể trao đổi dữ liệu với các thành phần khác như: Step 7; PLC ảo khác; PLC vật lý; các thiết bị trường; SCADA.
2) Bộ switch có tên “Siemens PLCSIM Virtual Switch”: Đây là switch ảo cho phép card ethernet ảo cắm vào đó, tiếp đến là card vật lý cũng được cắm vào đó, và như thế là PLC ảo có thể kết nối với các thành phần khác bên ngoài máy tính.
H2: Các thành phần cần thiết khi cài đặt PLCSim Advanced |
Cơ chế hoạt động này có thể được giải thích bằng hình 3:
H3: Các thành phần cài đặt cần thiết trong bộ PLCSim Advanced |
Sau khi hoàn thành việc lập trình của giai đoạn nào đó trong toàn bộ dự án, người dùng có thể tiến hành đổ chương trình xuống PLC. Việc đổ chương trình này hoàn toàn không khác gì so với việc đổ chương trình xuống PLC vật lý, Step 7 cũng không biết là đang làm việc với PLC ảo. Tuy nhiên, để đổ được chương trình xuống PLC ảo thì chúng ta cần phần phải nắm một số bước sau đây (hình 4):
H4: Các bước cơ bản khi sử dụng PLCSim Advanced |
1) Cài đặt địa chỉ IP cho card ethernet ảo. Chú ý là các PLC sẽ được tạo ra chỉ gán địa chỉ IP thuộc lớp mạng này;
2) Khởi động PLCSim Advanced và chọn “PLCSim Virtual Eth. Addapter”;
3) Tạo PLC thứ nhất (PLC_1). Chú ý địa chỉ IP của PLC phải thuộc lớp mạng được cài đặt ở bước 1, và địa chỉ này không được được trùng với với địa chỉ IP đã được cài trong card ethernet ảo;
4) Bấm start để tạo ra PLC;
5) Sau khi tạo xong, đèn led chuyển sang màu vàng, có nghĩa là PLC chưa có chương trình;
6) Tương tự, tạo PLC thứ 2 (PLC_2);
7) Bấm start để tạo ra PLC;
8) Sau khi tạo xong, đèn led chuyển sang màu vàng. Tương tự, PLC thứ 2 cũng chưa có chương trình như PLC thứ nhất;
9) Tương tự như khi làm việc với PLC vật lý là chọn card mạng mà PLC đang cắm vào đó để đổ chương trình xuống PLC;
10) Sau khi quét hệ thống tìm thấy 02 PLC dòng S7-1500 đang nối với card mạng;
11) Chọn PLC và bấm load để tải xuống;
12) Sau khi tải xong, chạy chương trình từ Step 7 thì đèn led PLC chuyển sang màu xanh.
Qua các bước trên thì rõ ràng là nếu đứng từ hướng Step 7, thì việc đổ chương trình xuống PLC vật lý hoàn toàn không khác gì so với việc đổ chương trình xuống PLC ảo. Điều này cũng hoàn toàn đúng đối với ứng dụng SCADA khi kết nối với PLC ảo.
IV- PLCSim Advanced và vận hành ảo
Vận hành ảo là thao tác trên giao diện thực, tác động đến PLC ảo để thu thập dữ liệu và điều khiển quá trình mô phỏng (sau đây gọi là bản sao số). Với cách làm này, thì có thể cho phép kỹ sư lập trình và kiểm chứng chương trình khi máy móc, quá trình công nghệ, đối tượng chưa hình thành. Lợi ích thấy được rõ ràng là nhà tích hợp hệ thống không cần phải bỏ kinh phí để mua thiết bị, mà hệ thống có thể chạy thử, đẩy nhanh quá trình kiểm tra tại nơi sản xuất, tại hiện trường mà không lo bị hư hỏng thiết bị và giúp cải thiện chất lượng sản xuất.
Một câu hỏi đặt ra là làm sao PLC ảo tương tác được với bản sao số, từ đó nó có thể thu thập tín hiệu (input) và đưa tín hiệu điều khiển (output) để điều khiển các thiết bị chấp hành? Hiện nay có hai cách mà PLC ảo có thể tương tác với bản sao số:
• Thông qua kết nối bằng các giao thức truyền thông: PLC ảo có thể kết nối với bản sao số sử dụng các giao thức phổ biến như: Modbus TCP/IP, OPC UA, S7. Cách này hoàn toàn giống như PLC vật lý dùng để tương tác với các PLC khác hoặc với SCADA ở cấp trên. Trong trường hợp này, PLC ảo có thể là client, có thể là server đều được.
• Thông qua API đi kèm với firmware của PLC ảo. Thông qua API các phần mềm mô phỏng quá trình có thể gọi hàm để đọc/ghi dữ liệu từ PLC ảo.
Có thể giải thích cơ chế tương tác giữa PLC ảo với bản sao số như hình 5. Trong trường hợp này PLC ảo là đơn vị thụ động. Phần mềm mô phỏng quá trình chủ động đọc/ghi dữ liệu từ PLC ảo thông qua API:
1) CPU thu thập dữ liệu từ vùng nhớ vật lý %I, %IW, chạy thuật toán điều khiển và xuất tín hiệu điều khiển ra vùng nhớ vật lý %Q, %QW như thường lệ;
2) Vùng nhớ vật lý %I, %IW của PLC ảo. Chúng được xuất hiện khi kéo thả các module input DI, AI vào cấu hình phần cứng trên Step 7;
3) Vùng nhớ vật lý %Q, %QW của PLC ảo. Nó được xuất hiện khi kéo thả các module output DQ, AQ;
4) API chứa các hàm từ đó các phần mềm có thể gọi và tương tác với các vùng nhớ (2) và (3). Hàm chủ yếu trong API là đọc (read), ghi (write);
5) Vùng nhớ input nằm trên phần mềm mô phỏng quá trình. Driver trên phần mềm mô phỏng chịu trách nhiệm đọc vùng nhớ vật lý %Q, %QW (3) trên PLC thông qua API (4) rồi cập nhật nó. Như vậy vùng nhớ input này được hiểu là các tín hiệu điều khiển từ PLC đưa ra.
6) Vùng nhớ output nằm trên phần mềm mô phỏng quá trình. Phần mềm mô phỏng chịu trách nhiệm chạy thuật toán mô phỏng, tính toán được các tính hiệu đầu ra rồi ghi vào vùng nhớ output này. Tiếp đến driver ghi nội dung của vùng nhớ này vào vùng nhớ vật lý %I %IW (2) trên PLC thông qua API (4). Như vậy vùng nhớ output này được hiểu là các tín hiệu đo được từ cảm biến, tiếp điểm,… để đưa vào input của PLC.
7) Bản sao số. Bản sao số là kết quả của mô hình hóa các quá trình vật lý, số liệu vật lý sử dụng các hàm truyền đối tượng dựa trên các phương trình vi phân, tích phân. Các đối tượng trong mô hình bị điều khiển tự động bởi nội dung của vùng nhớ (5) từ PLC đưa ra. Các tín hiệu kết quả hành vi quá trình được ghi vào vùng nhớ (6) như là tín hiệu thập bởi các cảm biến rồi đưa vào DI, AI của PLC.
H5: Cơ chế tương tác giữa PLCSim Advanced với bản sao số |
Hiện nay có những phần mềm phổ biến mô phỏng quá trình, đối tượng có thể liên kết được với PLCSim Advanced như: Matlab, Simit, NX, Labview, Factory I/O. Tuy nhiên, để đáp ứng được tính realtime, độ tin cậy cao, định hướng công nghiệp thì Simit là phần mềm chiếm ưu thế. Simit dùng để mô phỏng các quá trình vật lý diễn ra trong các đường ống, hoặc các đối tượng vật lý như động cơ, bơm hoặc các bồn, bể chứa trong nhà máy, quá trình nhiệt động học, các quá trình hóa học, tính chất vật lí của các chất dẫn như nhiệt độ, áp suất.
Hình 6 là sơ đồ P&ID xây dựng bằng Simit để mô phỏng quá trình lọc nước tính khiết. Mô hình được xây dựng bởi sinh viên ngành Kỹ thuật Điều khiển và Tự động hóa, Đại học Bách khoa TP.HCM, là một nhiệm vụ trong luận văn của sinh viên trong thời gian giãn cách xã hội bởi dịch Covid-19. Sau khi xây dựng xong mô hình, sinh viên có thể dùng PLCSim Advanced nối I/O với các tín hiệu của mô hình để thu thập dữ liệu và điều khiển. Tiếp đó là xây dựng hệ thống SCADA và các hệ thống khác trên cơ sở hệ điều khiển này.
H6: Sơ đồ P&ID trong một luận văn tốt nghiệp của sinh viên ngành tự động hóa, giai đoạn giãn cách xã hội |
V- PLCSim Advanced với các thành phần khác
Trước lúc đưa ra các phương án trao đổi dữ liệu giữa PLC ảo với các thành phần khác trong mạng và internet, chúng ta tìm hiểu cần phải cấu hình thế nào để PLC ảo có thể kết nối được với thế giới bên ngoài. Trong hình 7, nhấn mạnh 2 điểm mấu chốt để PLC ảo tương tác được với thế giới bên ngoài máy tính vật lý mà nó đang chạy:
1) “TCP/IP communication with” trên PLCSim Advanced chuyển từ
2) Hoặc có thể giữ nguyên
3) Check vào phần “Siemens PLCSim Virtual Switch”. Điều này đồng nghĩa với việc cắm máy tính vật lý vào switch ảo.
H7: Cấu hình để PLC ảo có thể tương tác với thế giới bên ngoài |
Như vậy, nếu cắm card ethernet của máy tính vào switch bên ngoài thì rõ ràng PLC ảo hoàn toàn có thể tương tác được với các thành phần bên ngoài. Theo cấu trúc trên hình 8 thì PLC từ máy tính vật lý №1 thể trao đổi dữ liệu với máy tính №2 bằng các giao thức phổ biến như: S7, Modbus TCP/IP, OPC UA. TIA Portal (Step 7 và WinCC Professional) từ máy tính №3 có thể tương tác với 2 PLC ảo chạy trong mạng.
H8: PLC ảo có thể tương tác với PLC ảo khác và với Step 7 |
Tương tự như PLC vật lý, PLC ảo có thể trao đổi dữ liệu với các thiết bị vật lý bên ngoài (hình 9). Cụ thể là PLC S7-1200, S7-1500 (2), các thiết bị trường hỗ trợ giao thức Modbus TCP/IP như điện kế, biến tần (3) và các PLC hỗ trợ Modbus TCP/IP (4).
H9: PLC ảo có thể tương tác với các thiết bị vật lý |
Không dừng lại ở đó, PLC ảo còn có thể đóng vai trò là thiết bị IoT để trao đổi dữ liệu với điện toán đám mây bằng các giao thức IoT phổ biến như: MQTT, OPC UA. Trong các trường hợp này PLC ảo đóng vài trò là client. Tương tự như PLC vật lý, trong trường hợp PLC ảo muốn kết nối với điện toán đám mây hoặc các server khác thông qua internet, thì phải cấu hình card ethernet như trong hình 10:
1) Chỉ ra địa chỉ của router Fiber-to-the-Home (192.168.1.1).
2) Cài đặt địa chỉ DNS server để từ đó, PLC ảo có thể kết nối với các server bên ngoài sử dụng tên miền.
3) Các cloud server hiện giờ rất khắt khe về độ lệch giữa đồng hồ thời gian thực trên thiết bị IoT và đồng hồ thời gian thực trên server. Nếu sai khác này vượt mức cho phép thì việc kết nối với server hoàn toàn không thực hiện được. Vậy nên trên PLC cần phải trỏ NTP server để đồng bộ thời gian.
H10: Cấu hình cần thiết để PLC có thể tương tác với điện toámn đám mây |
Như vậy, PLC ảo đóng vai trò là một thiết bị IoT hoàn toàn giống như PLC vật lý. Cấu trúc tương tác của các thành phần trong trường hợp này được thể hiện qua hình 11: PLC ảo (1) có thể đóng vai trò là OPC UA client, MQTT client, sử dụng internet (2) với đường truyền cáp quang như hiện nay (3) để đẩy dữ liệu lên MQTT broker hoặc OPC UA server chạy trên điện toán đám mây hoặc trên máy tính ảo (4). Các thiết bị di động (5) có thể thông qua mạng 3G/LTE, kết nối với MQTT broker/ OPC UA sever để thu thập dữ liệu do PLC ảo đưa lên, và có thể tương tác ngược lại bằng điều khiển các đối tượng/quá trình trên bản sao số phía PLC ảo.
H11: Cấu trúc tương tác giữa PLC ảo với điện toán đám mây |
VI- Kết luận:
Qua phân tích loạt cấu trúc, nguyên lý hoạt động và cơ chế trao đổi dữ liệu với các thành phần khác của PLC ảo ở trên, rõ ràng là PLC ảo có thể thay thế hoàn toàn PLC vật lý trong giai đoạn lập trình, kiểm tra chương trình điều khiển tại nơi chế tạo. Từ đó, cho phép rút ngắn thời gian kiểm tra tại hiện trường nhà máy.
Đối với ứng dụng SCADA sau khi lập trình và kiểm tra xong, mang ra triển khai tại nhà máy thì hoàn toàn không cần phải thay đổi hay thêm bớt gì trong chương trình.
Tác giả đã áp dụng PLCSim Advanced để thực hiện được một số dự án trong một số lĩnh vực như: nhà máy xử lý nước thải, trại chăn nuôi, cơ sở hạn tầng. Một trong những dự án có thể kể đến là dự án điều khiển các hệ thống bơm nước, các hệ thống valve thủy lực trên diện rộng, bao gồm khoảng trên 95 valve thủy lực, trên 70 bơm dầu, 22 bơm nước công suất lớn, khoảng 30 thiết bị điều khiển bằng biến tần. Toàn hệ thống sử dụng 8 PLC ảo. Hệ thống SCADA trong dự án này được xây dựng bằng công cụ lập trình WinCC Professional trong hệ sinh thái TIA Portal.
Trong đào tạo ngành Tự động hóa Công nghiệp, việc sử dụng PLC ảo kết hợp mô hình mô phỏng, hay cao hơn nữa là bản sao số, để từ đó, người học có thể lập trình, đổ chương trình, chạy và kiểm tra thuật toán điều khiển là lựa chọn hoàn toàn hợp lý. Bên cạnh đó bộ PLC ảo còn phát huy thế mạnh trong các môn học khác như SCADA, số hóa công nghiệp. Bản thân tác giả đã sử dụng PLCSim Advanced nhiều năm nay trong đào tạo sinh viên đại học và học viên cao học ngành Kỹ thuật Điều khiển và Tự động hóa trong các môn học và trong luận văn tốt nghiệp của sinh viên, học viên.
(Email tác giả: chau.truong@hcmut.edu.vn/ chau.truong@me.com)
Trương Đình Châu (Đại học Bách khoa - TP. Hồ Chí Minh)
TS. Trương Đình Châu |
TS. Trương Đình Châu hiện đang công tác tại trường Đại học Bách khoa TP.HCM, với hơn 25 năm kinh nghiệm trong lĩnh vực hệ thống điều khiển công nghiệp và SCADA. Ông là chuyên gia hàng đầu về tự động hóa và điều khiển tại Việt Nam, tham gia tích cực vào nghiên cứu, phát triển các giải pháp tiên tiến. Ngoài ra, TS. Trương Đình Châu còn tư vấn, thiết kế và lập trình cho nhiều dự án trọng điểm trong nước, góp phần quan trọng vào sự phát triển của ngành công nghiệp tự động hóa. |