Trong một số trường hợp, cấu hình đầu ra đầu vào mặc định có thể không phù hợp. Phân bổ I / O tùy chỉnh có thể phù hợp nếu cần thêm đầu vào hoặc đầu ra, phần cứng tùy chỉnh đang được sử dụng hoặc nếu quy ước đặt tên pin khác được ưu tiên.
23.1 Phân bổ I / O được cấu hình sẵn
Phiên bản 1.2 của thư viện PLC cung cấp một loạt các tệp I / O tùy chỉnh để phù hợp với nhiều loại phần cứng. Các tệp cấu hình sau có sẵn từ phần menu Tệp> Ví dụ> Tùy chỉnh.
Arduino Uno và Mega với cấu hình pin mặc định (Uno, Mega) Điều khiển PLCs (ControllinoMaxiPLC, ControllinoMegaPLC,
ControllinoMiniPLC)
Tấm chắn công nghiệp Ardbox PLCs (ArdboxAnalogPLC, ArdboxPNPPLC, ArdboxRelayPLC, ArdboxTCHPLC)
Tấm chắn công nghiệp M-Duino PLCs (MDuino19RelayPLC,
MDuino21PLC, MDuino38RelayPLC, MDuino42PLC, MDuino57RelayPLC, MDuino58PLC)
Seedstudio Grove shields for Uno and Mega (GroveUno, GroveMega) TinkerKit shields for Uno and Mega (TinkerkitUno, TinkerkitMega) Velleman I/O Shield (VellemanIOShield)
Use of custom pin names and user defined variable names (CustomIO)
Nếu cấu hình được cung cấp không phù hợp, thì bạn có thể cần phải tạo cấu hình của riêng mình từ đầu, như được thảo luận tiếp theo.
23.2 Nghiên cứu điển hình: Tạo Phân bổ IO Tùy chỉnh
Phần này trình bày việc tạo ánh xạ IO tùy chỉnh cho Tấm chắn đầu vào / đầu ra Velleman cho Arduino.
Hình 58. Tấm chắn Đầu vào / Đầu ra Velleman cho Arduino cung cấp một loạt các đầu
Mô-đun cung cấp tổng cộng mười tám kết nối IO, được sắp xếp như sáu đầu vào tương tự, sáu đầu vào kỹ thuật số và sáu đầu ra kỹ thuật số dựa trên rơle. Các chi tiết khác về kết nối và chi tiết đi dây bên trong có sẵn trong sách hướng dẫn và biểu dữ liệu.
Nhiệm vụ đầu tiên là chọn một quy ước đặt tên phù hợp cho các đầu vào và đầu ra, đồng thời xác định các kết nối chân liên quan.
Đầu vào tương tự có thể tiếp tục sử dụng các tên hiện có A0 – A5.
Đầu vào kỹ thuật số sẽ được cấp phát tên D0 – D5, được liên kết với các chân Arduino 2, 3, 4, 5, 6 và 7.
Đầu ra rơ le sẽ được gọi là R0 – R5, sử dụng các chân 8, 9, 10, 11, 12 và 13.
Hình 59. Ánh xạ IO cho lá chắn IO Velleman Arduino.
Bản phác thảo sau đây bắt đầu bằng cách vô hiệu hóa định nghĩa của các tên pin mặc định (X0, X1, ..., Y0, Y1, ...) bằng cách sử dụng lệnh #define noPinDefs, sau đó chỉ định các tên pin bắt buộc dưới dạng một chuỗi các hằng số nguyên.
Liệt kê 47. Tạo ánh xạ đầu vào / đầu ra của Velleman IO Shield (Nguồn: File> Examples> plcLib> CustomIO> VellemanIOShield)
Hàm customIO () được sử dụng (thay cho hàm setupPLC () tiêu chuẩn) để xác định hướng dữ liệu cho tất cả các đầu vào và đầu ra như được hiển thị trong phần trích xuất chương trình sau (có sẵn bằng cách nhấp vào tab IO của bản phác thảo).
Các điểm sau đây cần được lưu ý từ ví dụ trên.
Tên cho đầu vào kỹ thuật số và đầu ra chuyển tiếp phải được xác định trên toàn cầu, bằng cách xác định chúng bên ngoài phần setup () {...} và loop () {...}, do đó làm cho chúng có sẵn để sử dụng ở bất kỳ đâu trong sketch.
Tên ghim và phân bổ sẽ không thay đổi vì vậy được định nghĩa là hằng số hơn là biến.
Phần mềm plcLib yêu cầu các tên pin phải được xác định theo kiểu số nguyên có dấu (tức là 'int' thay vì 'unsigned int'), vì các lý do đã thảo luận trước đó, trong phần Sử dụng biến trong chương trình