MicroLogix 1400 Online Edit Error with MUL Instruction — figure 1

Lỗi chỉnh sửa trực tuyến MicroLogix 1400 với lệnh MUL

Lỗi chỉnh sửa trực tuyến MicroLogix 1400 khi thêm lệnh MUL với toán hạng hằng số. Khắc phục bằng cách sử dụng địa chỉ Float thay vì hằng số làm nguồn phép nhân.

Việc chỉnh sửa trực tuyến MicroLogix 1400 qua EtherNet/IP có thể thất bại với thông báo “Không thể biên dịch chương trình. Lỗi chỉnh sửa trực tuyến” khi một bậc thang MUL sử dụng hằng số dạng số thực như 0.7 với nguồn số nguyên. Cùng một dự án có thể được xác minh ngoại tuyến mà không gặp lỗi. Trình biên dịch chỉnh sửa trực tuyến của bộ điều khiển áp dụng các quy tắc toán hạng nghiêm ngặt hơn đường dẫn ngoại tuyến, và các hằng số dấu phẩy động trong lệnh số học thường là nguyên nhân gây lỗi.

Lỗi chỉnh sửa trực tuyến MicroLogix 1400 với lệnh MUL — hình 1

Thay hằng số bằng địa chỉ tệp Float đã chứa giá trị 0.7, sau đó kiểm tra lại việc chỉnh sửa trực tuyến trước khi thay đổi bất kỳ điều gì khác.

Triệu chứng và cấu hình

Mục Cấu hình thường gây lỗi
Bộ điều khiển MicroLogix 1400 Series A hoặc B
Phần mềm RSLogix 500 với chức năng chỉnh sửa trực tuyến
Lệnh MUL
Nguồn A N7:2 (số nguyên)
Nguồn B Hằng số 0.7
Đích N7:7 (số nguyên)

Nguyên nhân gốc

Chỉnh sửa trực tuyến trên MicroLogix 1400 xác thực kích thước và kiểu dữ liệu của toán hạng chặt chẽ hơn so với biên dịch ngoại tuyến. Hằng số dấu phẩy động ở Nguồn B có thể được chấp nhận trong một số lần xác minh ngoại tuyến, nhưng bị từ chối khi chỉnh sửa phải được biên dịch vào ảnh chương trình đang chạy. Các thông báo ngoại tuyến liên quan như “Kích thước toán hạng không khớp” cũng chỉ ra cùng nhóm lỗi không tương thích kiểu dữ liệu. Không phải mọi thay đổi trên MicroLogix đều có thể thực hiện trực tuyến; một số thay đổi cấu trúc vẫn yêu cầu chỉnh sửa ngoại tuyến và tải xuống.

Quy trình khắc phục

  1. Xác định một địa chỉ Float chưa sử dụng (ví dụ F8:7).
  2. Đặt trước giá trị 0.7 cho F8:7 khi ngoại tuyến hoặc thông qua một bậc thang MOV/khởi tạo chạy một lần.
  3. Chỉnh sửa MUL: Nguồn A vẫn là N7:2; Nguồn B trở thành F8:7; Đích vẫn là N7:7 hoặc chuyển sang Float nếu cần độ chính xác.
  4. Chấp nhận chỉnh sửa trực tuyến và xác nhận bậc thang được biên dịch.
  5. Buộc một giá trị đã biết cho Nguồn A và xác minh tích trong thời gian chạy.
Lỗi chỉnh sửa trực tuyến MicroLogix 1400 với lệnh MUL — hình 2
MUL
  Nguồn A: N7:2
  Nguồn B: F8:7   <-- địa chỉ Float, không phải hằng số 0.7
  Đích:     N7:7   <-- hoặc F8:8 để giữ đầy đủ độ chính xác

Hệ quả của kiểu dữ liệu

Cấu hình Kết quả
Nguồn B = hằng số 0.7 Lỗi biên dịch chỉnh sửa trực tuyến
Nguồn B = F8:7, Đích = N7:7 Chỉnh sửa thành công; bị cắt/làm tròn thành số nguyên
Nguồn B = F8:7, Đích = F8:8 Chỉnh sửa thành công; giữ đầy đủ độ chính xác Float

Với N7:2 = 10 và hệ số nhân 0.7, đích số nguyên sẽ cho kết quả 7 theo quy tắc làm tròn/cắt bỏ được áp dụng, chứ không giữ lại giá trị Float 7.0. Hãy lựa chọn kiểu đích một cách có chủ đích khi giá trị được đưa vào PID, phép scaling hoặc các phép so sánh.

Các giới hạn chỉnh sửa trực tuyến liên quan đến phép tính số học

Độ nhạy của cùng một trình biên dịch trực tuyến cũng xuất hiện với DIV, các biểu thức kiểu CPT nếu khả dụng, và các chuỗi INT/Float hỗn hợp được nhập nhanh trong khi tinh chỉnh trực tiếp. Các kỹ sư thường thử ba lần chỉnh sửa trực tuyến liên tiếp—chỉ thay đổi hằng số, sau đó thay đổi kiểu tệp đích, rồi thay toàn bộ bậc thang—mà không bao giờ rời khỏi chế độ Run. Mỗi lần biên dịch thất bại lại khiến hàng đợi chỉnh sửa đang chờ ở trạng thái khó hiểu. Hãy hủy chỉnh sửa lỗi một cách sạch sẽ, thực hiện một thay đổi nhất quán (thay hằng số bằng địa chỉ Float), rồi chấp nhận một lần. Nếu MicroLogix báo không thể biên dịch chương trình sau nhiều lần thử, hãy chuyển sang ngoại tuyến, xác minh tệp tồn tại (F8 được tạo với đủ số phần tử), sau đó tải xuống một ảnh chương trình đã biết là tốt trước khi thử lại thao tác trực tuyến.

Cũng cần xác nhận rằng tệp Float không bị bảo vệ bởi quyền truy cập bảng dữ liệu hoặc mật khẩu cho phép xác minh ngoại tuyến nhưng chặn sửa đổi trực tuyến. Cả bộ điều khiển MicroLogix 1400 Series A và Series B đều hỗ trợ chỉnh sửa trực tuyến khi phiên bản firmware và RSLogix 500 tương thích; các phiên bản công cụ không khớp có thể hiển thị cùng dòng chữ “lỗi chỉnh sửa trực tuyến” vì những nguyên nhân không liên quan. Hãy duy trì một ảnh chương trình của bộ điều khiển thử nghiệm, trong đó có MUL với toán hạng Float hoạt động thành công, để kỹ thuật viên có thể đối chiếu với dự án tại nhà máy.

Xác minh và các giới hạn rộng hơn

Sau khi chỉnh sửa được chấp nhận, hãy buộc N7:2 đi qua một số giá trị và theo dõi hoặc giám sát cả đích số nguyên lẫn đích Float nếu cả hai đều tồn tại. Xác nhận chỉnh sửa trực tuyến được biên dịch mà không có lỗi, kiểm tra MUL thực thi chính xác trong thời gian chạy, và nếu cần độ chính xác thì chuyển đích sang Float như F8:8. Các lỗi dai dẳng sau khi thay hằng số nên được tái hiện ngoại tuyến trước, rồi tải xuống. Ưu tiên sử dụng các giá trị theo địa chỉ thay vì hằng số nội tuyến ở những nơi dự kiến sẽ chỉnh sửa trực tuyến. Hãy ghi chép các quy tắc lập trình MicroLogix cùng với các tiêu chuẩn PLC và PAC khác để kỹ thuật viên không mất thời gian truy tìm lỗi Ethernet trong khi nguyên nhân thực sự chỉ là quy tắc toán hạng.

Về tác giả

Mark Townsend | Kỹ sư tự động hóa cấp cao – Hệ thống Allen-Bradley

Mark Townsend là kỹ sư tự động hóa cấp cao với hơn 18 năm làm việc trên các nền tảng Allen-Bradley, bao gồm ControlLogix, CompactLogix và SLC-500 đời cũ. Công việc hằng ngày của ông là phát triển logic RSLogix / Studio 5000 và đưa HMI FactoryTalk View vào vận hành trên các hệ thống cũ và đội thiết bị hỗn hợp.

Lỗi chỉnh sửa trực tuyến MicroLogix 1400 với lệnh MUL

Lỗi chỉnh sửa trực tuyến MicroLogix 1400 khi thêm lệnh MUL với toán hạng hằng số. Khắc phục bằng cách sử dụng địa chỉ Float thay vì hằng số làm nguồn phép nhân.

Việc chỉnh sửa trực tuyến MicroLogix 1400 qua EtherNet/IP có thể thất bại với thông báo “Không thể biên dịch chương trình. Lỗi chỉnh sửa trực tuyến” khi một bậc thang MUL sử dụng hằng số dạng số thực như 0.7 với nguồn số nguyên. Cùng một dự án có thể được xác minh ngoại tuyến mà không gặp lỗi. Trình biên dịch chỉnh sửa trực tuyến của bộ điều khiển áp dụng các quy tắc toán hạng nghiêm ngặt hơn đường dẫn ngoại tuyến, và các hằng số dấu phẩy động trong lệnh số học thường là nguyên nhân gây lỗi.

Lỗi chỉnh sửa trực tuyến MicroLogix 1400 với lệnh MUL — hình 1

Thay hằng số bằng địa chỉ tệp Float đã chứa giá trị 0.7, sau đó kiểm tra lại việc chỉnh sửa trực tuyến trước khi thay đổi bất kỳ điều gì khác.

Triệu chứng và cấu hình

Mục Cấu hình thường gây lỗi
Bộ điều khiển MicroLogix 1400 Series A hoặc B
Phần mềm RSLogix 500 với chức năng chỉnh sửa trực tuyến
Lệnh MUL
Nguồn A N7:2 (số nguyên)
Nguồn B Hằng số 0.7
Đích N7:7 (số nguyên)

Nguyên nhân gốc

Chỉnh sửa trực tuyến trên MicroLogix 1400 xác thực kích thước và kiểu dữ liệu của toán hạng chặt chẽ hơn so với biên dịch ngoại tuyến. Hằng số dấu phẩy động ở Nguồn B có thể được chấp nhận trong một số lần xác minh ngoại tuyến, nhưng bị từ chối khi chỉnh sửa phải được biên dịch vào ảnh chương trình đang chạy. Các thông báo ngoại tuyến liên quan như “Kích thước toán hạng không khớp” cũng chỉ ra cùng nhóm lỗi không tương thích kiểu dữ liệu. Không phải mọi thay đổi trên MicroLogix đều có thể thực hiện trực tuyến; một số thay đổi cấu trúc vẫn yêu cầu chỉnh sửa ngoại tuyến và tải xuống.

Quy trình khắc phục

  1. Xác định một địa chỉ Float chưa sử dụng (ví dụ F8:7).
  2. Đặt trước giá trị 0.7 cho F8:7 khi ngoại tuyến hoặc thông qua một bậc thang MOV/khởi tạo chạy một lần.
  3. Chỉnh sửa MUL: Nguồn A vẫn là N7:2; Nguồn B trở thành F8:7; Đích vẫn là N7:7 hoặc chuyển sang Float nếu cần độ chính xác.
  4. Chấp nhận chỉnh sửa trực tuyến và xác nhận bậc thang được biên dịch.
  5. Buộc một giá trị đã biết cho Nguồn A và xác minh tích trong thời gian chạy.
Lỗi chỉnh sửa trực tuyến MicroLogix 1400 với lệnh MUL — hình 2
MUL
  Nguồn A: N7:2
  Nguồn B: F8:7   <-- địa chỉ Float, không phải hằng số 0.7
  Đích:     N7:7   <-- hoặc F8:8 để giữ đầy đủ độ chính xác

Hệ quả của kiểu dữ liệu

Cấu hình Kết quả
Nguồn B = hằng số 0.7 Lỗi biên dịch chỉnh sửa trực tuyến
Nguồn B = F8:7, Đích = N7:7 Chỉnh sửa thành công; bị cắt/làm tròn thành số nguyên
Nguồn B = F8:7, Đích = F8:8 Chỉnh sửa thành công; giữ đầy đủ độ chính xác Float

Với N7:2 = 10 và hệ số nhân 0.7, đích số nguyên sẽ cho kết quả 7 theo quy tắc làm tròn/cắt bỏ được áp dụng, chứ không giữ lại giá trị Float 7.0. Hãy lựa chọn kiểu đích một cách có chủ đích khi giá trị được đưa vào PID, phép scaling hoặc các phép so sánh.

Các giới hạn chỉnh sửa trực tuyến liên quan đến phép tính số học

Độ nhạy của cùng một trình biên dịch trực tuyến cũng xuất hiện với DIV, các biểu thức kiểu CPT nếu khả dụng, và các chuỗi INT/Float hỗn hợp được nhập nhanh trong khi tinh chỉnh trực tiếp. Các kỹ sư thường thử ba lần chỉnh sửa trực tuyến liên tiếp—chỉ thay đổi hằng số, sau đó thay đổi kiểu tệp đích, rồi thay toàn bộ bậc thang—mà không bao giờ rời khỏi chế độ Run. Mỗi lần biên dịch thất bại lại khiến hàng đợi chỉnh sửa đang chờ ở trạng thái khó hiểu. Hãy hủy chỉnh sửa lỗi một cách sạch sẽ, thực hiện một thay đổi nhất quán (thay hằng số bằng địa chỉ Float), rồi chấp nhận một lần. Nếu MicroLogix báo không thể biên dịch chương trình sau nhiều lần thử, hãy chuyển sang ngoại tuyến, xác minh tệp tồn tại (F8 được tạo với đủ số phần tử), sau đó tải xuống một ảnh chương trình đã biết là tốt trước khi thử lại thao tác trực tuyến.

Cũng cần xác nhận rằng tệp Float không bị bảo vệ bởi quyền truy cập bảng dữ liệu hoặc mật khẩu cho phép xác minh ngoại tuyến nhưng chặn sửa đổi trực tuyến. Cả bộ điều khiển MicroLogix 1400 Series A và Series B đều hỗ trợ chỉnh sửa trực tuyến khi phiên bản firmware và RSLogix 500 tương thích; các phiên bản công cụ không khớp có thể hiển thị cùng dòng chữ “lỗi chỉnh sửa trực tuyến” vì những nguyên nhân không liên quan. Hãy duy trì một ảnh chương trình của bộ điều khiển thử nghiệm, trong đó có MUL với toán hạng Float hoạt động thành công, để kỹ thuật viên có thể đối chiếu với dự án tại nhà máy.

Xác minh và các giới hạn rộng hơn

Sau khi chỉnh sửa được chấp nhận, hãy buộc N7:2 đi qua một số giá trị và theo dõi hoặc giám sát cả đích số nguyên lẫn đích Float nếu cả hai đều tồn tại. Xác nhận chỉnh sửa trực tuyến được biên dịch mà không có lỗi, kiểm tra MUL thực thi chính xác trong thời gian chạy, và nếu cần độ chính xác thì chuyển đích sang Float như F8:8. Các lỗi dai dẳng sau khi thay hằng số nên được tái hiện ngoại tuyến trước, rồi tải xuống. Ưu tiên sử dụng các giá trị theo địa chỉ thay vì hằng số nội tuyến ở những nơi dự kiến sẽ chỉnh sửa trực tuyến. Hãy ghi chép các quy tắc lập trình MicroLogix cùng với các tiêu chuẩn PLC và PAC khác để kỹ thuật viên không mất thời gian truy tìm lỗi Ethernet trong khi nguyên nhân thực sự chỉ là quy tắc toán hạng.

Về tác giả

Mark Townsend | Kỹ sư tự động hóa cấp cao – Hệ thống Allen-Bradley

Mark Townsend là kỹ sư tự động hóa cấp cao với hơn 18 năm làm việc trên các nền tảng Allen-Bradley, bao gồm ControlLogix, CompactLogix và SLC-500 đời cũ. Công việc hằng ngày của ông là phát triển logic RSLogix / Studio 5000 và đưa HMI FactoryTalk View vào vận hành trên các hệ thống cũ và đội thiết bị hỗn hợp.

Để lại bình luận

Xin lưu ý, bình luận cần được phê duyệt trước khi được đăng.