lên PLC Client
Hình 4.9 Lưu đồ thuật tốn hàm MB.task()
Hàm request có một chức năng rất quan trọng, mục đích của hàm này là tạo kết nối Modbus TCP/IP và duy trì kết nối khi kết nối được khởi tạo.
Từ lưu đồ thuật toán chạy hàm request (xem Hình 4.9). Ban đầu, chương trình bắt đầu thực hiện kiểm tra kết nối nếu đã kết nối truyền thông giữa Arduino với PLC Client là Modbus TCP/IP đã được khởi tạo thì kết nối vẫn được duy trì và quá trình gửi dữ liệu lên PLC Client sẵn sàng, cịn nếu chưa có khởi tạo kết nối thì chương trình sẽ chạy kết nối lần đầu bằng cách khởi tạo truyền thơng Modbus TCP/IP. Sau khi đã có kết nối lần đầu thì quá trình gữi dữ liệu sẽ được duy trì mà khơng cần phải chạy lại q trình kiểm tra kết nối.
Giám sát điện năng tiêu thụ tồ nhà sử dụng truyền thơng Modbus TCP/IP
4.3 Chương trình điều khiển
4.3.1 Arduino đọc tín hiệu từ module cảm biến dịng PZEM 004T
Chương trình điều khiển đọc tín hiệu từ cảm biến dịng bằng Arduino được viết trên phần mềm Arduino IDE. Việc giao tiếp với module cảm biến này được thể hiện rõ ở hình 4.7 là lưu đồ thuật tốn đọc giá trị cảm biến (xem Hình 4.7) và bảng 4.1 (xem Bảng 4.1) là sơ đồ nối dây.
Một trong những lưu ý khi giao tiếp với module này là phải truy xuất đúng địa chỉ của từng giá trị của thơng số. Mỗi thơng số được mà hóa theo kiểu Hex (mã thập lục phân) nên khi chuyển đổi sang kiểu dữ liệu số thực thì phải xử lý cẩn thận.
4.3.2 Chương trình giao tiếp với module ethernet ENJ28J60
Đối với việc giao tiếp với Module Ethernet thì điều quan nhất là việc phải thiết lập được địa chỉ IP cho nó.
Việc sử dụng Modbus TCP/IP vì nó sử dụng truyền thơng qua mạng TCP/ IP trên bộ điều khiển công nghiệp, kết nối qua cổng 502 (Local Port). Vì các lớp thấp hơn đã cung cấp bảo vệ tổng kiểm tra nên nó khơng u cầu tính tốn tổng kiểm tra. Hơn nữa sử dụng trên nền tảng TCP/IP giúp tận dụng được cơ sở hạ tầng có sẵn hiện nay như router mạng ethernet, cổng giao tiếp RJ45…
Hình 3.17 (xem Hình 3.17) là cách thiết lập địa chỉ IP trên Arduino giúp nó định danh với các trạm khác nhau trong hệ thống.
4.3.3 Chương trình giao tiếp PLC Client với Arduino
Để giao tiếp giữa PLC với Arduino, chúng tôi sử dụng chuẩn giao Modbus TCP/IP do vậy việc giao tiếp bắt buộc phải sử dụng hàm MB_Client (xem Hình 4.10), các thơng số phải thiết lập khi sử dụng hàm Modbus TCP/IP (xem Bảng 4.6).