Hướng dẫn truyền thông Internet cho PLC bằng iNut Platform - Lập trình kéo thả Internet cho PLC

Mô tả dự án: 

Điện tử công nghiệp thường chỉ tin tưởng và sử dụng các loại mạch PLC truyền thống vì khả năng đọc được ngược code, độ bền, tính ổn định (Đã được kiểm chứng theo thời gian). PLC đó là chuyên môn của các kỹ sư điện công nghiệp và gần như là kỹ năng bắt buộc phải có của mỗi người. Tuy nhiên, PLC có một điểm dỡ đó là: khó để lập trình kết nối Internet để quản lý (quan sát) từ xa. Phải biết thêm về WinCC (chi phí bản quyền cao) hoặc C# để làm phần mềm điều khiển trên máy tính. Điều đó không phải là dễ dàng đối với một kỹ sư điện tử công nghiệp. Vậy đâu là giải pháp? Đó chính là iNut Platform với dòng sản phẩm iNut - PLC Modbus RTU RS-485. iNut PLC sẽ giúp bạn đồng bộ các thanh ghi D trong PLC qua Internet một cách dễ dàng, an toàn và bảo mật. Cùng khám phá nhé!

Bài toán đưa PLC lên Internet

Với nhu cầu đưa thông tin các hệ thống cảm biến, máy móc lên Internet để quản lý, thống kê và quan sát từ xa, chủ doanh nghiệp rất mong muốn đưa hệ thống xưởng của mình lên mạng để quản lý và xem thông số từ xa qua Internet. Điều đó thôi thúc họ đầu tư các thiết bị máy móc để đưa xưởng của mình lên Internet và quản lý từ xa. Các giải pháp trên thị trường đã có từ những năm 200x, tuy nhiên, thường rất đắt và chi phí đầu tư lớn. Chưa kể, có thể phải thay thế toàn bộ hệ thống PLC hiện có, điều đó là rất lãng phí, vì nhà máy không thể dừng vài ngày để nâng cấp được. Chưa kể đến độ an toàn và các bug có thể xảy ra...

Vậy một giải pháp an toàn đó là: đưa hệ thống PLC hiện có lên Internet bằng các chuẩn truyền thông có sẵn và quen thuộc, sao cho ít phải thay thế nhất hoặc không thay thế các thiết bị hiện có thì càng tốt. Và iNut PLC đã ra đời để thực hiện hóa khát khao ấy của các doanh nghiệp vừa và nhỏ ở Việt Nam.

Một hệ thống nhà xưởng minh bạch, an toàn và kết nối Internet là đích đến của cách mạng công nghiệp 4.0. Và điều đó sẽ rất dễ dàng nếu các bạn sử dụng iNut Platform vào và từ đó xây dựng các giải pháp cung cấp cho các doanh nghiệp. Nào, hãy cùng khám phá!

Bản chất của việc đưa PLC lên Internet

Bản chất của việc đưa PLC lên Internet đó là đưa các thanh ghi D của PLC lên Internet. Hay còn gọi cách khác là đồng bộ giá trị thanh ghi D lên Intenret. Vì sao lại là thanh ghi D? Vì thanh ghi D là các thanh ghi được dùng để lưu giá trị xử lý tính toán trong PLC. Vậy bằng một cơ chế nào đó, cho phép người lập trình PLC có thể đồng bộ một số thanh ghi D lên Internet, thì họ đã có thể tiếp cận được với thế giới IoT! Chuyện sau đó, thì có rất nhiều cách giải quyết. Và với iNut Platform, bạn có một hệ sinh thái với giải pháp đưa các thanh ghi D lên Internet và từ Internet gửi lệnh xuống để thay đổi thanh ghi D!

Ngoài ra, iNut Platform có thể được lập trình kéo thả dễ dàng với Node-RED.

Lấy cái hình để ra đây để cho anh em lấy động lực chơi tiếp!

Nào, chúng ta cùng bắt đầu nhé.

Chuẩn bị

Phần mềm

  • Trên điện thoại di động:
    • iNut - Công tắc wifi (các bạn search trong apple store hoặc google play từ khóa inut là ra). Tải về trên Apple Store, tải về ở Google Play.
    • App này là app dùng để cài đặt các thiết bị iNut (bao gồm iNut PLC và các loại thiết bị khác trong hệ sinh thái iNut Platform) lên Internet.
  • Trên máy tính:

Phần cứng

  • iNut PLC. Các bạn có thể chọn các loại sau: 
    • iNut - PLC Modbus RTU RS-485 8D
      • 8 thanh ghi từ PLC đồng bộ lên Internet / không giới hạn số lần gửi thay đổi giá trị thanh ghi từ Internet xuống PLC.
      • Các thanh ghi được đồng bộ: D101, D102, D103, D104, D105, D106, D107, D108.
      • Thông số RS-485 Modbus RTU: 
        • ​Baudrate: 19200
        • Databits:
        • Stopbits: 1
        • No parity
        • Modbus RTU protocol
        • Modbus Maser (nghĩa là thiết bị PLC của các bạn sẽ phải làm Modbus Slave với Slave Address  1)
  • PLC loại bất kỳ hỗ trợ giao tiếp Modbus RTU (loại nào có RS485 thì luôn hỗ trợ Modbus RTU)
    • Bấy kỳ PLC nào hỗ trợ cổng giao tiếp RS485 như: FX1N, FX2N, FX3U, FX3G, FX3S, FX3UC, S7-200, S7-300, S7-400,…đều có thể tích hợp với iNut Platform
  • Nguồn 24V cho PLC
  • Một mạch USB RS-485 cho việc thử nghiệm nếu không có PLC.

Để đảm bảo tính tổng quát cho bài viết này, mình sẽ xem như các bạn đã biết cách tự mình cài đặt cho PLC của mình truyền thông được RS-485 với các yêu cầu như trên. Tuy nhiên, có thể các bạn có thể cài đặt sai và nghĩ iNut PLC bị lỗi... devil nên mình khuyên các bạn nên chuẩn bị một mạch USB RS-485 để test iNut PLC có hoạt động hay không nhé! Mình thực sự khuyến nghị các bạn nên có một mạch USB RS-485 kèm theo (chỉ 15-25k mua ở đâu cũng có) để test iNut PLC trước khi dùng với PLC thật. Vì nó sẽ giúp các bạn ngồi một chỗ với chiếc máy tính của mình làm việc đồng bộ và làm quen với iNut cảm biến ^_^.

Kết nối iNut PLC

iNut PLC hỗ trợ các mức điện thế sau: 5VDC/9VDC/12VDC/19VDC/24VDC devil. Wow, rất nhiều phải không nào. Thích hợp cho mọi dự án ^_^.

Okay, chúng ta sẽ có một số lưu ý như sau:

  • ​Khối nổi lên là Mobus RTU với chuẩn A, B.
  • Khối vuông bên dưới là chuẩn USB Type-B.
    • Bạn có thể cấp điện áp 5V vào đây để iNut PLC hoạt động.

Bên cạnh đó, là jack nguồn 2.1mm có thể cấp nguồn từ 7-15V cho mạch, khuyên dùng 9-12V vào đây.

Tuy nhiên, PLC dùng nguồn 24V, vì vậy iNut tặng kèm cho các bạn một dây chuyển áp từ 24V => 10V (có thể thay đổi được) để các bạn có thể hạ áp từ 24V xuống đoạn 10V để gắn điện cho iNut PLC.

Okay, sau khi cấp điện, các bạn tiến cành cài đặt mạng cho iNut PLC như sau (các bạn có thể kết nối tới wifi trong nhà hoặc ở những tủ điện không có wifi thì các bạn có thể kết nối với một loại usb wifi 3g nhé)

Kết nối PLC và iNut PLC

Okay sau khi đã cập điện okay cho iNut PLC, chúng ta sẽ có hình ảnh như sau:

Mình khuyên các bạn nên sử dụng một mạch USB RS-485 để có thể dễ dàng kiểm thử iNut PLC như mình!

Với PLC thật, các bạn chỉ cần truyền thông Modbus RTU Slave (Address = 1) với các thông số sau là thành công: 

  • ​Baudrate: 19200
  • Databits: 
  • Stopbits: 1
  • No parity

Tuy nhiên, có thể các bạn sẽ không có sẵn PLC, vì vậy với sự hỗ trợ của mạch USB RS-485, mình sẽ hướng dẫn các bạn giả lập một em PLC với chuẩn Modbus RTU hoàn toàn miễn phí!

Okay, cùng thử nghiệm với USB RS-485 nào!

Các bạn mở Windows command line lên bằng cách nhấn tổ hợp phím Windows + R (phím Windows là phím giữa Alt và Ctrl á). Sau đó gõ lệnh cmd và nhấn OK.

Tải chương trình giả lập PLC Modbus RTU diagslave

Trong bản lệnh hiện ra, bạn lần lượt chạy các lệnh sau (chép và dán vào từng lệnh một cho chắc nhé)

git clone https://github.com/ngohuynhngockhanh/diagslave.2.12

cd diagslave.2.12

cd win32

Chạy giả lập

Các bạn gắn USB RS-485 vào máy tính. Khi đã gắn thành công thì máy bạn sẽ nhận cổng COM. Ví dụ ở đây là COM13 (các bạn dân kỹ thuật nên sẽ biết tra cổng COM ở đâu rồi nhỉ? Nếu chưa biết xem qua ở đây).

Sau đó, mình chạy đoạn chương trình sau:

diagslave.exe -b 19200 -d 8 -s 1 -p none -m rtu -a 1 COM13

Ý nghĩa: Tạo một cổng Modbus RTU ảo với address slave là 1 baudrate 19200, databits 8, none parity và 1 stop bit ở cổng COM13.

Okay, lúc này bạn gắn USB RS485 và iNut PLC lại là nó sẽ chạy ra màn hình như thế này là ổn!

Kết nối iNut PLC lên Node-red để làm webapp

Cài đặt Node-RED

 

Các bạn mở Windows command line lên bằng cách nhấn tổ hợp phím Windows + R (phím Windows là phím giữa Alt và Ctrl á). Sau đó gõ lệnh cmd và nhấn OK.

 

Trong bản lệnh hiện ra, bạn lần lượt chạy các lệnh sau (chép và dán vào từng lệnh một cho chắc nhé)

Clone code về

git clone https://github.com/ngohuynhngockhanh/iNut-Node-RED-Kickstarter

cd iNut-Node-RED-Kickstarter

git checkout inut-plc

Cài đặt

npm install

Chạy chương trình

npm start

Sau khi cài đặt xong, bạn sẽ có một thông báo như thế này:

Và các bạn truy cập vào http://127.0.0.1:1880/... nhé! Đây là giao diện của chúng ta.

Các bạn truy cập vào địa chỉ http://localhost:1880/ui/... để xem giao diện đồ họa nhé.

Okay, cài đặt xong rồi, bước tiếp theo là cập nhập các mã thông tin trong ví dụ mẫu cho phù hợp với các thiết bị iNut của bạn. 

Lấy mã thiết bị iNut PLC để xuất khối lệnh vào Node-red

Các bạn lần lượt làm theo các video sau:

Good, các bạn đã thành công, bây giờ các bạn có thể khám phá rất nhiều mẫu ví dụ về Node-red để tự làm một giao diện sáng tạo tại Cộng đồng Arduino Việt Nam - Cộng đồng học thuật chất lượng về tự động hóa tốt nhất.

Cách reset thiết bị iNut PLC

Bạn cần reset thiết bị PLC <=> giao hàng cho khách hàng và chuyển giao toàn bộ cho họ thui nha!

lên
5 thành viên đã đánh giá bài viết này hữu ích.
Các dự án được truyền cảm hứng

Đọc cảm biến nhiệt độ, độ ẩm từ DHT11 up lên server làm webapp

Hôm nay, mình sẽ dùng cảm biến DHT11 để đọc nhiệt độ, độ ẩm, từ đó đẩy lên Internet thông qua iNut Cảm biến. Đồng thời sẽ quay màn hình quá trình làm webapp devil.

lên
6 thành viên đã đánh giá bài viết này hữu ích.
Các bài viết cùng tác giả

Phạm vi biến

Ngôn ngữ Arduino được xây dựng trên ngôn ngữ lập trình C. Các biến của Arduino, cũng như C, có một phạm trù được gọi là phạm vi biến. Điều này trái ngược với ngôn ngữ BASIC, ở ngôn ngữ BASIC này, mọi biến đều là biến toàn cục.

lên
1 thành viên đã công nhận bài viết này hữu ích!

kQuayTayLED

Rất cảm ơn Huy đã giành thời gian dịch và chai sẻ đến bài viết này. Mong trong thời gian tới, Huy hướng dẫn anh em làm phần quay nữa thì quá tuyệt. Chứ bây giờ, mình quay tay mỏi quá đi à yes.

lên
8 thành viên đã đánh giá bài viết này hữu ích.