Mục lục:
- Bước 1: Giới thiệu
- Bước 2: Mô tả Bảng thực:
- Bước 3: Trình tự nào để lập trình? Sơ đồ trạng thái và SFC
- Bước 4: Lập trình với Arduino IDE 1.6.X
- Bước 5: Lập trình với YAKINDU
- Bước 6: Giám sát nó với AdvancedHMI
- Bước 7: Giám sát nó với Unigo Evolution
- Bước 8: Kết luận
Video: Arduino PLC 32 I / O + State Machine + SCADA hoặc HMI: 8 bước
2024 Tác giả: John Day | [email protected]. Sửa đổi lần cuối: 2024-01-30 13:34
Nhiều cách để lập trình, điều khiển và giám sát một hệ thống công nghiệp với arduino.
Bước 1: Giới thiệu
Trong hướng dẫn này, tôi sẽ giải quyết:
2 phương pháp để lập trình arduino được liên kết với một loại máy bao gồm nút nhấn, công tắc và đèn LED
1- Phương pháp đầu tiên với arduino 1.6.x IDE sử dụng thư viện SM (State Machine)
2-Phương pháp thứ hai sử dụng Yakindu, một dự án soạn thảo digram trạng thái được tạo bằng môi trường nhật thực: bạn vẽ máy trạng thái của mình và nó tạo mã để chuyển sang bảng Arduino.
Hợp tác với
2 cách giám sát máy bằng SCADA hoặc HMI ảo đang chạy:
1- dưới Android 4.4: Unigo Evolution, một ứng dụng miễn phí không có mã chỉ có các mục để đặt trên màn hình và modbus TCP
2-dưới Windows 8: một dự án miễn phí AdvancedHMI cần Visual Studio 2013, không có mã và các mục để đặt trên màn hình và modbus TCP
Vì vậy, bạn vẽ các chuỗi chức năng của mình bằng SFC (trong tự động hóa: Biểu đồ chức năng tuần tự), bạn dịch nó trong một biểu đồ trạng thái (rất gần hơn), bạn lập trình nó (Yakindu hoặc Arduino SM lib) và sau đó bạn giám sát nó bằng SCADA (Unigo android hoặc AdvancedHMI Windows).
Bước 2: Mô tả Bảng thực:
Sơ đồ:
Tôi đã sử dụng bảng Arduino UNO, không phải bản sao vì Yakindu không thể gửi bất kỳ chương trình nào đến bất kỳ bản sao nào chỉ là bo mạch UNO và Mega.
Tôi có thể có 32 I / O kỹ thuật số với 2 bộ mở rộng SPI như MCP23S17 (2x16 I / O) và thêm 2 đầu ra tương tự 12 bit (tương tự thực không được lọc PWM) với 2 SPI DAC như MCP4921.
Tôi không vẽ tấm chắn ethernet nhưng bạn cần nó để giám sát hệ thống của mình: vì vậy các chân 4, 10, 11, 12 và 13 không được sử dụng cho bất kỳ thứ gì khác và rõ ràng là chân 0 và 1 chỉ dành cho RX TX.
Các bức ảnh bảng thực:
8 nút bấm là cần thiết:
- 4 cho chế độ thủ công: một cho ánh sáng trên mỗi đèn led
- 1 để dừng khẩn cấp: nếu được đẩy, bạn đang ở chế độ bình thường, nhả: khẩn cấp
- 1 cho chế độ tự động khởi động đèn tuần tự bật và tắt của từng đèn led, nếu nhả: chế độ thủ công, để điều khiển từng đèn led không theo trình tự
- 1 để RUN ở chế độ tự động
- 1 để DỪNG ở chế độ tự động
4 dẫn để mô phỏng bất cứ thứ gì bạn muốn (rơ le, van…)
Tôi đưa ra tên của từng nút và đèn led tôi đã sử dụng trong các chương trình.
Bước 3: Trình tự nào để lập trình? Sơ đồ trạng thái và SFC
Tôi đã tạo một SFC rất đơn giản để mô tả những gì hệ thống phải làm.
3 SFC là cần thiết:
- SFCsecu để bật hoặc tắt chế độ khẩn cấp, đó là SFC chính khởi chạy các chế độ khác
- Hướng dẫn sử dụng tự động SFC do SFCsecu đưa ra, bạn có thể đạt được chế độ tự động hoặc chế độ thủ công
- Dừng chạy SFC, quét và ghi nhớ nếu ai đó đẩy DCY (RUN) hoặc FCY (STOP)
Các SFC này đang chạy trong chế độ giả nhiều lần.
Sau đó, tôi dịch chúng trong một biểu đồ trạng thái:
- một máy chủ (Khẩn cấp) khởi chạy 2 nô lệ khác
- một nô lệ để quét và ghi nhớ DCY và FCY
- một nô lệ để đạt được chế độ tự động hoặc thủ công
Một điều khác: khi bạn đẩy DCY, bạn có thể thử nghiệm đầu ra tương tự với bộ trimer ảo trên scada, khi bạn đẩy FCY, đầu ra tương tự giảm xuống 0V.
Biểu đồ trạng thái giúp bạn lập trình arduino.
Bước 4: Lập trình với Arduino IDE 1.6. X
Tôi cung cấp cho bạn mã để dịch các sơ đồ trước. Tôi cũng cần 3 lib bổ sung.
Bạn cũng sẽ cần bảng địa chỉ để hiểu bạn sử dụng chân nào để làm gì và modbus đăng ký các địa chỉ tương ứng.
Bước 5: Lập trình với YAKINDU
Đầu tiên hãy tải xuống phiên bản dự án miễn phí 2.9 (không phải chuyên nghiệp) trên:
www.itemis.com/en/yakindu/state-machine/
Sau đó, hãy làm theo hướng dẫn được cung cấp: có một số sửa đổi so với lần cuối cùng tôi tải xuống chương trình, chỉ đối với tên của các phần khác nhau của tệp "xxxconnector.cpp" là hoàn thành.
Các bức ảnh: bản vẽ của máy trạng thái, chế độ xem thư mục trong dự án và các thư viện đã nhập của nó từ arduino, chế độ xem "xxxconnector.cpp" để tạo liên kết giữa các chuyển đổi / trạng thái và các đầu vào / đầu ra thực của hội đồng quản trị hoặc của SCADA.
Tôi cung cấp cho bạn dự án mà bạn sẽ phải nhập vào không gian làm việc được tạo tự động của mình.
Cũng được cung cấp: các lib cần thiết để nhập vào Yakindu và một số thay đổi cần thực hiện được mô tả trong hướng dẫn.
Bước 6: Giám sát nó với AdvancedHMI
Lần đầu tiên tải xuống Visual studio Express 2013 trở lên tại:
www.microsoft.com/fr-fr/download/details.a…
Sau đó tải xuống dự án AdvancedHMI trên:
sourceforge.net/projects/advancedhmi/?SetF…
Tôi cung cấp cho bạn các bức ảnh của SCADA tôi đã vẽ (với các địa chỉ thanh ghi modbus tương ứng) và được lập trình mà không cần mã, dự án đã được sửa đổi và một hướng dẫn ngắn gọn.
Bước 7: Giám sát nó với Unigo Evolution
Bạn cần một nhà phát triển Android với Android 4.4 (kit kat) và màn hình 7 inch.
Tôi cung cấp cho bạn các bức ảnh của SCADA tôi đã vẽ (và các địa chỉ đăng ký modbus tương ứng) và một hướng dẫn ngắn gọn để sử dụng Unigo, không cần mã, một thư mục chứa hình ảnh của đèn công nghiệp và các nút để đặt trong thư mục UniGOPictures được tạo trong nội bộ của bạn SD bởi ứng dụng và dự án.
Bước 8: Kết luận
Đó là một nhiệm vụ to lớn khi tập hợp 2 cách lập trình khác nhau và 2 cách giám sát khác nhau. Thật khó để làm quen với từng cách kỹ năng. Nhưng bây giờ nó hoạt động và một khi đã hiểu, giờ đây bạn có thể điều khiển các hệ thống phức tạp hơn.
Cảm ơn rất nhiều hướng dẫn trên toàn thế giới, cho Archie (AdvancedHMI), cho RenéB2 (Yakindu) và Mikael Andersson (Unigo Evolution) và các nhà phát triển thư viện arduino, những người đã cho phép tôi thực hiện một dự án "làm mưa làm gió" như vậy.
Sans eux j'aurais peut être souffert d'unhesia d'incomplétude infinie pour l'éternité. J'exagère un peu.
Người hướng dẫn vui vẻ.