1.Tổng quan về MEWTOCOL-COM
■ Chức năng của lệnh và phản hồi
Máy tính gửi các lệnh (cấu trúc) đến PLC và nhận lại phản hồi. Điều này cho phép PC và PLC giao tiếp với nhau để có thể thu thập và cung cấp nhiều loại thông tin khác nhau.
■ Định dạng lệnh và phản hồi
Control codes
Name | Character | ASCII code | Giải thích |
Header | % or < | 25H or 3CH | Thông tin bắt đầu của một tin nhắn. |
Command | # | 23H | Nhận biết dữ liệu lệnh: tin nhắn |
Normal response | $ | 24H | Nhận biết dữ liệu phản hồi: tin nhắn phản hồi. |
Error response | ! | 21H | Nhận biết dữ liệu lỗi: thông báo phản hồi lỗi |
Terminator | C R | 0DH | Nhận biết vị trí cuối của tin nhắn |
Delimiter | &(+ C R ) | 26H | Nhận biết dấu phân cách chia dữ liệu thành nhiều khung. |
Destination and source AD (H), (L)
-Gồm 2 chữ số thập phân từ 01 –> 32(Mã ACSII)
-Nếu không có giá trị cụ thể nào được chỉ định, thì “01” nên được đặt
Block check code BCC (H), (L)
-Gồm 2 chữ số hệ hexa từ 00 đến FF (mã ASCII)
-Đây là những mã được sử dụng để phát hiện lỗi trong dữ liệu được truyền.
-Nếu “**” được nhập thay vì “BCC”, tin nhắn có thể được truyền mà không cần BCC.
Error code Err (H), (L)
-Gồm 2 chữ số hệ hexa từ 00 đến FF (mã ASCII)
-Chúng chỉ ra nội dung nếu có lỗi xảy ra.
■ BCC (Block check code)
● BCC là mã thực hiện kiểm tra lỗi , để cải thiện độ tin cậy của dữ liệu được gửi.
● BCC sử dụng OR độc quyền từ tiêu đề (%) đến ký tự cuối cùng của văn bản và chuyển đổi dữ liệu 8 bit thành mã ASCII 2 ký tự.
Ví Dụ
2 Danh sách các lệnh MEWTOCOL-COM
Tên lệnh | Mã | Mô tả |
Đọc các tiếp điểm | RC | Đọc trạng thái bật và tắt của tiếp điểm. |
(RCS) | Chỉ xác định một tiếp điểm. | |
(RCP) | Chỉ định nhiều tiếp điểm. | |
(RCC) | Chỉ định một phạm vi theo unit word | |
Ghi các tiếp điểm | WC | Bật và tắt tiếp điểm. |
(WCS) | Chỉ xác định một tiếp điểm. | |
(WCP) | Chỉ định nhiều tiếp điểm. | |
(WCC) | Chỉ định một phạm vi theo unit word | |
Đọc vùng dữ liệu | RD | Đọc nội dung của một vùng dữ liệu. |
Ghi vùng dữ liệu | WD | Ghi dữ liệu vào một vùng dữ liệu. |
Đọc vùng giá trị đặt bộ đếm thời gian / bộ đếm | RS | Đọc giá trị được đặt cho bộ đếm thời gian / bộ đếm. |
Ghi vùng giá trị đặt bộ đếm thời gian / bộ đếm | WS | Ghi giá trị cài đặt bộ đếm thời gian / bộ đếm. |
Đọc vùng giá trị đã trôi qua của bộ đếm thời gian / bộ đếm | RK | Đọc giá trị đã trôi qua của bộ đếm thời gian / bộ đếm. |
Ghi vùng giá trị đã trôi qua của bộ đếm thời gian / bộ đếm | WK | Ghi giá trị đã trôi qua của bộ đếm thời gian / bộ đếm. |
Đăng ký hoặc Đặt lại tiếp điểm được giám sát | MC | Đăng ký tiếp điểm cần theo dõi. |
Th hoặc Đặt lại dữ liệu được giám sát | MD | Đăng ký dữ liệu được theo dõi. |
Giám sát bắt đầu | MG | Theo dõi một số tiếp điểm hoặc dữ liệu đã đăng ký. |
Đặt trước vùng tiếp điểm (điền lệnh) | SC | Nhúng khu vực của một phạm vi được chỉ định theo mẫu bật và tắt 16 điểm. |
Vùng dữ liệu đặt trước (điền lệnh) | SD | Ghi cùng một nội dung vào vùng dữ liệu của một phạm vi được chỉ định. |
Đọc thanh ghi hệ thống | RR | Đọc nội dung của thanh ghi hệ thống. |
Ghi thanh ghi hệ thống | WR | Chỉ định nội dung của một thanh ghi hệ thống. |
Đọc trạng thái của PLC | RT | Đọc thông số kỹ thuật PLC và mã lỗi nếu xảy ra lỗi. |
Điều khiển từ xa | RM | Chuyển chế độ hoạt động của PLC |
Huỷ bỏ | AB | Hủy giao tiếp. |
[WCS] Write contact area (single point)
Thao tác này chỉ bật hoặc tắt một tiếp điểm.
ví dụ : ‘%01#WCSL000D1**\r’ # Ghi giá trị 1 vào bit YD
‘%01#WCSL000E1**\r’ # Ghi giá trị 1 vào bit YE
[RCC] Read contact area (word units block)
Điều này đọc trạng thái bật và tắt của tiếp điểm theo đơn vị word.
ví dụ: ‘%01#RCCR00000004**\r’ # Đọc giá trị các thanh ghi R0,R1,R2,R3,R4
‘%01#RCCL00000002**\r’
‘%01#RCSY000E**\r’
[RD] Read data area
Để đọc nội dung của DT, LD và FL:
ví dụ :’%01#RDD0014400145**\r’
‘%01#RDD0212402125**\r’
‘%01#RDD3271232713′–>’25 30 31 23 52 44 44 33 32 37 31 32 33 32 37 31 33’ ( chuyển từ ASCII sang hexa)
Word:
Một biến của kiểu dữ liệu WORD bao gồm 16 bit. Ví dụ: trạng thái của 16 đầu ra in– / có thể được biểu diễn bằng một từ (WORD).
Giá trị nguyên mặc định, ví dụ: đối với khai báo biến trong tiêu đề POU hoặc trong Danh sách các biến toàn cục, = 0 (FALSE). Nhập các giá trị WORD ở định dạng (DEC), HEX– hoặc BIN:
Input Relay
covert hex to Ascii :
1 2 3 4 5 6 7 8 9 10 11 12 13 |
cmd_send = '%01#RDD3271232713' hex_num = 0X2530312352444433323731323332373133 string = "25 30 31 23 52 44 44 33 32 37 31 32 33 32 37 31 33" byte_array = bytearray.fromhex(string) print("Ascii:", byte_array.decode()) # ouput : %01#RDD3271232713 print("bin =",bin(hex_num)) print("len bin: ",len(bin(hex_num))) print(hex(255)) # decimal print(hex(0b111)) # binary print(hex(0o77)) # octal print(hex(0XFF)) # hexadecima |