Cac Khoi Ham Modbus-C3

You might also like

Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 13

1

Chương 1:
Chương 2:
Chương 3: Giao tiếp Modbus RTU
3.1. Tổng quan
Trước khi phát hành STEP 7 V13 SP1 và CPUs S7-1200 V4.1, các lệnh giao tiếp
Modbus RTU giao tiếp tồn tại với các tên khác nhau, và trong một số trường hợp, các
giao diện hơi khác nhau. Các khái niệm chung áp dụng cho cả hai bộ lệnh. Tham khảo
đến hướng dẫn Modbus RTU kế thừa riêng lẻ cho thông tin lập trình.

3.2. Lựa chọn phiên bản hướng dẫn của Modbus RTU
Có hai phiên bản của lệnh Modbus RTU kế thừa có sẵn trong BƯỚC 7:

 Phiên bản cũ 1.3: Tương thích với tất cả các phiên bản CPU và CP
 Phiên bản kế thừa 2.2: Tương thích với tất cả các phiên bản CPU và CP
(Lưu ý: Phiên bản 2.2 thiết kế thêm các tham số REQ và DONE vào
MB_COMM_LOAD. Ngoài ra, tham số MB_ADDR cho MB_MASTER và
MB_SLAVE hiện cho phép một giá trị Uint giá cho địa chỉ mở rộng.)
Để tương thích và dễ dàng di chuyển, bạn có thể chọn phiên bản lệnh để chèn vào
chương trình người dùng của bạn.
Bạn không thể sử dụng cả hai phiên bản lệnh với cùng một mô-đun, nhưng hai module
khác nhau có thể sử dụng các phiên bản khác nhau của lệnh. Chương trình lệnh
Modbus RTU phải có cùng số phiên bản chính (1.x, 2.y hoặc V.z). các lệnh riêng lẻ
trong một nhóm phiên bản chính có thể có các phiên bản phụ khác nhau (1.x).
Để thay đổi phiên bản của lệnh Modbus, hãy chọn phiên bản từ danh sách thả xuống.
Bạn có thể chọn nhóm hoặc các lệnh riêng lẻ.

Khi bạn sử dụng cây hướng dẫn để đặt một lệnh Modbus trong chương trình của mình,
một cá thể FB mới sẽ được tạo trong cây dự án. Bạn có thể thấy một FB mới trong cây
dự án trong PLC_x > Program blocks > System blocks > Program resources.
Để xác minh phiên bản của lệnh Modbus trong một chương trình, bạn phải kiểm tra
các thuộc tính cây dự án chứ không phải các thuộc tính của một hộp được hiển thị
2

trong trình soạn thảo chương trình. Chọn một cá thể Modbus FB của cây dự án, nhấp
chuột phải, chọn "Properties", và chọn trang "Information" để xem số phiên bản hướng
dẫn Modbus.

3.3. Các lệnh Modbus RTU kế thừa


3.3.1. MB_COMM_LOAD (Cấu hình cổng trên module PtP cho Modbus
RTU)
3.3.1.1. Lệnh MB_COMM_LOAD:

Lệnh MB_COMM_LOAD cấu hình một cổng PtP cho truyền thông giao thức Modbus
RTU. Tùy chọn phần cứng cổng Modbus: Cài đặt tối đa ba CM (RS485 hoặc RS232),
cộng với một CB (R4845). Một khối dữ liệu cá thể được gán tự động khi bạn đặt lệnh
MB_COMM_LOAD trong chương trình của mình.
3.3.1.2. Kiểu dữ liệu cho các tham số:
Parameter and type Kiểu dữ liệu Mô tả
REQ IN BOOL Bắt xung sườn lên thì hoạt động
PORT IN PORT Sau khi bạn cài đặt và định cấu hình thiết
bị giao tiếp CM hoặc CB, cổng định danh
xuất hiện trong danh sách thả xuống của
trình trợ giúp tham số có sẵn tại kết nối hộp
PORT. Giá trị cổng CM hoặc CB được chỉ
định là thiết bị thuộc tính cấu hình "định
danh phần cứng". Tên biểu tượng của cổng
được gán trong tab "Hằng số hệ thống" của
bảng thẻ PLC.

BAUD IN UDInt Lựa chọn tốc độ truyền :


300, 600, 1200, 2400, 4800, 9600, 19200,
38400, 57600, 76800, 115200,...
PARITY IN Uint Lựa chọn parity:
3

 0 – Không
 1 – Odd
 2 - Even
FLOW IN Uint Lựa chọn luồng điều khiển:
CTRL  0 – không có
 1 – kiểm soát luồng phần cứng với
RTS luôn luôn bật (không áp dụng
cho cổng RS485)
 2 – kiểm soát luồng phần cứng với
công tắc RTS
RTS On IN UInt Lựa chọn độ trễ RTS ON:
Delay  0 - (mặc định) Không có độ trễ từ
RTS hoạt động cho đến khi ký tự
đầu tiên của thông điệp được truyền
đi
 1 đến 65535 - Độ trễ tính bằng mili
giây kể từ khi RTS hoạt động cho
đến khi ký tự đầu tiên của thông
báo được truyền đi (không áp dụng
cho cổng RS485). Độ trễ RTS sẽ
được áp dụng độc lập với lựa chọn
FLOW_CTRL.

RTS Off IN UInt Lựa chọn độ trễ RTS OFF:


Delay  0 - (mặc định) Không có độ trễ từ
ký tự cuối cùng được truyền cho
đến khi RTS không hoạt động
 1 đến 65535 - Độ trễ tính bằng mili
giây kể từ ký tự cuối cùng được
truyền cho đến khi RTS không hoạt
động (không áp dụng cho cổng
RS485). RTS chậm trễ sẽ được áp
dụng độc lập với lựa chọn
FLOW_CTRL.

RESP_TO IN UInt Thời gian chờ phản hồi:


Thời gian tính bằng mili giây được
Modbus_Master cho phép để nô lệ phản
hồi. Nếu nô lệ không phản hồi trong
khoảng thời gian này, Modbus_Master sẽ
thử lại yêu cầu hoặc kết thúc yêu cầu do lỗi
khi số lần thử lại được chỉ định đã được
gửi. 5 ms đến 65535 ms (giá trị mặc định =
1000 ms).

MB_DB IN Variant Tham chiếu đến khối dữ liệu cá thể được


Modbus_Master sử dụng hoặc hướng dẫn
4

Modbus_Slave. Sau Modbus_Master hoặc


Modbus_Slave là được đặt trong chương
trình của bạn, mã định danh DB xuất hiện
trong trình trợ giúp tham số danh sách thả
xuống có sẵn tại kết nối hộp MB_DB.

DONE OUT Bool Bit DONE là TRUE cho một lần quét, sau
khi yêu cầu cuối cùng được hoàn thành
không có lỗi.

ERROR OUT Bool Bit ERROR là TRUE cho một lần quét, sau
khi yêu cầu cuối cùng bị kết thúc do lỗi.
Giá trị mã lỗi tại tham số STATUS là chỉ
có hiệu lực trong một lần quét mà ERROR
= TRUE.
STATUS OUT Word Mã lỗi

3.3.1.3. Mã điều kiện


 Trạng thái các lỗi:
Trạng thái
Mô tả
(W#16#)
0000 Không có lỗi
Giá trị ID cổng không hợp lệ (sai cổng / định danh phần cứng cho
8180
module giao tiếp)
8181 Tốc độ truyền không hợp lệ
8182 Giá trị parity không hợp lệ
8183 Invalid flow control value
Giá trị thời gian chờ phản hồi không hợp lệ (thời gian chờ phản
8184
hồi nhỏ hơn tối thiểu 5 ms)
Tham số MB_DB không phải là khối dữ liệu của lệnh
8185
MB_MASTER hoặc MB_SLAVE .

3.3.2. MB_MASTER (giao tiếp bằng cổng PtP như Modbus RTU master)
3.3.2.1. Lệnh MB_MASTER:
5

Lệnh MB_MASTER giao tiếp như một Modbus master bằng cách sử dụng một cổng
đã được cấu hình bởi việc thực thi lệnh MB_COMM_LOAD trước đó. Một khối dữ
liệu cá thể được chỉ định tự động khi bạn đặt lệnh MB_MASTER trong chương trình
của mình. Khối dữ liệu phiên bản MB_MASTER này được sử dụng khi bạn chỉ định
tham số MB_DB cho lệnh MB_COMM_LOAD.
3.3.2.2. Kiểu dữ liệu cho các tham số:
Parameter and type Kiểu dữ liệu Mô tả
REQ IN BOOL Bằng 0: không có yêu cầu
Bằng 1: Yêu cầu truyền dữ liệu tới
Modbus slave

MB_ADDR IN V1.0: USInt Địa chỉ trạm Modbus RTU:


V2.0: UInt Dải địa chỉ tiêu chuẩn (1 đến 247)
Dải địa chỉ mở rộng (1 đến 65535)
Giá trị của 0 được dành riêng để phát
thông báo tới tất cả các Modbus
nô lệ. Mã chức năng Modbus 05, 06, 15
và 16 là chức năng duy nhất
mã được hỗ trợ để phát sóng.

MODE IN USInt Lựa chọn chế độ: Chỉ định loại yêu cầu
(đọc, ghi hoặc chẩn đoán).
Xem bảng chức năng Modbus bên dưới để
biết chi tiết

DATA_ADDR IN UDInt Địa chỉ bắt đầu trong máy chủ: Chỉ định
địa chỉ bắt đầu của dữ liệu để được truy
cập trong Modbus slave. Xem bảng chức
năng Modbus bên dưới cho các địa chỉ
hợp lệ.

DATA_LEN IN Uint Độ dài dữ liệu: Chỉ định số lượng bit hoặc


từ được truy cập trong phần này yêu cầu.
Xem bảng hàm Modbus bên dưới để biết
độ dài hợp lệ.
6

DATA_PTR IN Variant Con trỏ dữ liệu: Trỏ đến địa chỉ M hoặc
DB (loại DB không được tối ưu hóa) cho
dữ liệu được ghi hoặc đọc.

DONE OUT Bool Bit DONE là TRUE cho một lần quét, sau
khi yêu cầu cuối cùng được hoàn thành
không có lỗi.

BUSY OUT Bool • 0 - Không có hoạt động Modbus_Master


nào đang diễn ra
• 1 - Đang vận hành Modbus_Master

ERROR OUT Bool Bit ERROR là TRUE cho một lần quét,
sau khi yêu cầu cuối cùng bị kết thúc do
lỗi. Giá trị mã lỗi tại tham số STATUS là
chỉ có hiệu lực trong một lần quét mà
ERROR = TRUE.
STATUS OUT Word Mã lỗi

 Tham số REQ:
0 = Không yêu cầu; 1 = Yêu cầu truyền dữ liệu tới Modbus Slave.
Bạn có thể kiểm soát đầu vào này thông qua việc sử dụng tiếp điểm được kích hoạt
ở mức hoặc cạnh. ( Ví dụ: xung clock 1hz,...)
Bất cứ khi nào đầu vào này được bật, một máy trạng thái sẽ được khởi động để
đảm bảo rằng không có khối MB_MASTER nào khác đang sử dụng cùng đối
tượng DB được phép đưa ra một yêu cầu, cho đến khi yêu cầu được hoàn thành.
Tất cả các trạng thái đầu vào khác được ghi lại và lưu giữ nội bộ cho hiện tại yêu
cầu, cho đến khi nhận được phản hồi hoặc phát hiện lỗi.
Nếu đối tượng MB_MASTER tương tự được thực thi lại với REQ input = 1 trước
khi hoàn thành yêu cầu hiện tại, thì không có lần truyền tiếp theo nào được thực
hiện. Tuy nhiên, khi yêu cầu được hoàn thành, một yêu cầu mới được đưa ra bất cứ
khi nào MB_MASTER được thực thi lại với đầu vào REQ = 1.
 Các tham số DATA_ADDR và MODE lựa chọn kiểu chức năng Modbus
DATA_ADDR (địa chỉ Modbus bắt đầu trong máy phụ): Chỉ định địa chỉ bắt đầu
của dữ liệu được truy cập trong máy phụ Modbus.
Lệnh MB_MASTER sử dụng đầu vào MODE thay vì một đầu vào Function Code.
Sự kết hợp giữa MODE và địa chỉ Modbus xác định Function Code được sử dụng
trong thông báo Modbus thực tế. Bảng sau đây cho thấy sự tương ứng giữa các
tham số MODE, Modbus Function Code và vùng địa chỉ Modbus.
7

Chức
Chế Độ dài Địa chỉ
năng Hoạt động và dữ liệu
độ dữ liệu Modbus
Modbus
1 to
2000 Đọc các bit đầu ra:
0 01 1 to 9999
1 to 1 to (1992 or 2000) bits/ yêu cầu
1992 1
1 to
2000 Đọc các bit đầu vào: 10001 to
0 02
1 to 1 to (1992 or 2000) bits/ yêu cầu 19999
1992 1
40001 to
1 to 125
Đọc Holding registers: 49999 or
0 03 1 to 124
1 to (124 or 125) words/ yêu cầu 400001 to
1
465535
1 to 125
Đọc các word đầu vào: 30001 to
0 04 1 to 124
1 to (124 or 125) words/ yêu cầu 39999
1
Viết một bit đâu ra:
1 05 1 1 to 9999
1 bits/ yêu cầu
40001 to
Viết một holding register: 49999 or
1 06 1
words/ yêu cầu 400001 to
465535
2 to
1968 Viết nhiều bit đầu ra:
1 15 1 to 9999
2 to 2 to (1960 or 1968) bits/ yêu cầu
1960 1
40001 to
2 to 123
Viết nhiều holding registers: 49999 or
1 16 2 to 122
2 to (122 or 123) words/ yêu cầu 400001 to
1
465535
1 to
1968 Viết một hoặc nhiều bit đầu ra:
2 15 1 to 9999
2 to 1 to (1960 or 1968) bits / yêu cầu
1960 1
2 16 1 to 123 Viết một hoặc nhiều holding 40001 to
1 to 122 registers: 49999 or
1 1 to (122 or 123) words / yêu cầu 400001 to
8

465535
Đọc trạng thái giao tiếp và đếm sự
kiện slave. Từ trạng thái cho biết bận
(0 - không bận, 0xFFFF - bận). Bộ
đếm sự kiện được tăng lên cho mỗi
11 11 0 lần hoàn thành thành công một tin
nhắn.
Cả hai toán hạng DATA_ADDR và
DATA_LEN của MB_MASTER bị
bỏ qua cho chức năng này.
Kiểm tra trạng thái slave bằng mã
chẩn đoán dữ liệu 0x0000 (Kiểm tra
80 08 1 vòng lặp - slave lặp lại yêu cầu)
1 word cho mỗi yêu cầu
Đặt lại bộ đếm sự kiện slave bằng mã
81 08 1 chẩn đoán dữ liệu 0x000A
1 từ cho mỗi yêu cầu
3 to
10,
12 to
79, reserved
82 to
255

 Tham số DATA_PTR: cấu trúc khối dữ liệu cho DATA_PTR


Các kiểu dữ liệu này hợp lệ để đọc các words của địa chỉ Modbus: 30001 đến
39999, 40001 đến 49999 và 400001 đến 465536 và cũng để ghi các từ vào địa chỉ
Modbus 40001 đến 49999 và 400001 đến 465536.
- Mảng tiêu chuẩn của các kiểu dữ liệu WORD, UINT hoặc INT (xem bên
dưới).
- Được đặt tên là cấu trúc WORD, UINT hoặc INT trong đó mỗi phần tử có
một tên duy nhất và kiểu dữ liệu 16 bit.
- Cấu trúc phức tạp được đặt tên trong đó mỗi phần tử có một tên duy nhất và
kiểu dữ liệu 16 bit hoặc 32 bit.
Để đọc và ghi các bit của địa chỉ Modbus 00001 đến 09999 và 10001 đến 19999.
- Mảng chuẩn của kiểu dữ liệu Boolean.
- Cấu trúc Boolean được đặt tên của các biến Boolean được đặt tên duy nhất.
9

Mặc dù không bắt buộc, nhưng mỗi lệnh "MB_MASTER" có vùng bộ nhớ riêng trong
khối dữ liệu chung. Lý do cho khuyến nghị này là có nhiều khả năng bị hỏng dữ liệu
hơn nếu nhiều lệnh "MB_MASTER" đang đọc và ghi cùng một khu vực của khối dữ
liệu toàn cục.
Các vùng bộ nhớ cho DATA_PTR không cần phải nằm trong cùng một khối dữ liệu
chung. Bạn có thể tạo một khối dữ liệu với nhiều vùng cho các hoạt động đọc Modbus,
một khối dữ liệu cho các hoạt động ghi Modbus hoặc một khối dữ liệu cho mỗi trạm
phụ.

3.3.2.3. Mã điều kiện:


 Bảng mã lỗi giao tiếp và cấu hình:
Trạng thái
Mô tả
(W#16#)
0000 Không lỗi
Slave timeout. Kiểm tra tốc độ truyền, tính chẵn lẻ và hệ thống dây của
80C8
slave.
Nơi nhận đã đưa ra yêu cầu điều khiển luồng để tạm ngừng quá trình
truyền đang hoạt động và không bao giờ bật lại quá trình truyền trong
thời gian chờ đã chỉ định.
80D1
Lỗi này cũng được tạo ra trong quá trình điều khiển luồng phần cứng
khi nơi nhận không xác nhận
CTS trong thời gian chờ quy định.
80D2 Yêu cầu truyền đã bị hủy bỏ vì không nhận được tín hiệu DSR từ DCE.
80E0 Thông báo đã kết thúc vì bộ đệm nhận đã đầy.
80E1 Thông báo đã bị kết thúc do lỗi chẵn lẻ.
80E2 Thông báo đã bị kết thúc do lỗi đóng khung
80E3 Thông báo đã bị kết thúc do lỗi chạy quá mức.
Thông báo bị kết thúc do độ dài được chỉ định vượt quá tổng kích
80E4
thước bộ đệm.
8180 Giá trị ID cổng không hợp lệ hoặc lỗi với lệnh MB_COMM_LOAD
8186 Địa chỉ trạm Modbus không hợp lệ
8188 Chế độ không hợp lệ được chỉ định cho yêu cầu phát sóng
8189 Địa chỉ dữ liệu không hợp lệ
818A Độ dài dữ liệu không hợp lệ
Con trỏ đến nguồn / đích dữ liệu cục bộ không hợp lệ: Kích thước
818B
không đúng
Con trỏ không hợp lệ cho DATA_PTR hoặc Blocked_Proc_Timeout
818C không hợp lệ: Vùng dữ liệu phải là DB
(cho phép cả truy cập tượng trưng và trực tiếp) hoặc M bộ nhớ.
8200 Cổng đang bận xử lý một yêu cầu truyền.

 Bảng lỗi modbus protocol:


Trạng thái Mã phản hồi Lỗi giao thức modbus
10

(W#16#) từ slave
8380 - Lỗi CRC
8381 01 Function code không được hỗ trợ
8382 03 Lỗi độ dài dữ liệu
Lỗi địa chỉ dữ liệu hoặc địa chỉ nằm ngoài phạm vi
8383 02
hợp lệ của vùng DATA_PTR
8384 Greater than 03 Lỗi giá trị dữ liệu
Giá trị mã chẩn đoán dữ liệu không được hỗ trợ (mã
8385 03
chức năng 08)
Function code trong phản hồi không khớp với mã
8386 -
trong yêu cầu.
8387 - Lỗi phản hồi slave
Phản hồi của slave cho một yêu cầu viết là không
8388 - chính xác. Yêu cầu ghi do slave trả lại không khớp
với những gì chủ thực sự đã gửi.

3.3.3. MB_SLAVE (giao tiếp bằng cổng PtP như Modbus RTU slave)
3.3.3.1. Lệnh MB_SLAVE:

Lệnh MB_SLAVE cho phép chương trình của bạn giao tiếp như một Modbus
Slave thông qua cổng PtP trên CM (RS485 hoặc RS232) và CB (RS485). Khi
điều khiển từ xa Modbus RTU master đưa ra một yêu cầu, chương trình người
dùng phản hồi yêu cầu bằng Thực thi MB_SLAVE. STEP 7 tự động tạo một
phiên bản DB khi bạn chèn chỉ dẫn. Sử dụng tên MB_SLAVE_DB này khi bạn
chỉ định tham số MB_DB cho hướng dẫn MB_COMM_LOAD.
3.3.3.2. Kiểu dữ liệu cho các tham số:
Parameter and type Kiểu dữ liệu Mô tả
MB_ADDR IN V1.0: USInt Địa chỉ trạm của modbus slave:
V2.0: Uint Vùng địa chỉ chuẩn (1 đến 247)
Vùng địa chỉ mở rộng (0 đến 65535)
MB_HOLD_REG IN Varint Con trỏ đến DB Modbus Holding
Register: Modbus đang nắm giữ
thanh ghi có thể là bộ nhớ M hoặc một
khối dữ liệu.
NDR OUT Bool Dữ liệu mới sẵn sàng:
 0 – không có dữ liệu mới
 1 – cho biết dữ liệu mới đã
được ghi bởi Modbus master
DR OUT Bool Đọc dữ liệu:
 0 – không có dữ liệu đọc
 1 - cho biết dữ liệu đã được
đọc bởi Modbus master
11

ERROR OUT Bool Bit ERROR là TRUE cho một lần


quét, sau khi yêu cầu cuối cùng là kết
thúc với một lỗi. Nếu quá trình thực
thi bị kết thúc do lỗi, thì giá trị mã lỗi
tại tham số STATUS chỉ hợp lệ trong
một lần quét mà ERROR = TRUE.

STATUS OUT Word Mã lỗi

Các mã chức năng giao tiếp Modbus (1, 2, 4, 5 và 15) có thể đọc và ghi các bit
và từ trực tiếp trong hình ảnh quy trình đầu vào và hình ảnh quy trình đầu ra của
CPU. Đối với chức năng này mã, tham số MB_HOLD_REG phải được xác định
là loại dữ liệu lớn hơn một byte. Bảng sau đây cho thấy ví dụ về ánh xạ địa chỉ
Modbus tới hình ảnh quá trình trong CPU.
 Ánh xạ địa chỉ Modbus vào ảnh quá trình
Modbus functions S7 - 1200
Codes Function Data Address range Data area Cpu address
area
01 Read bits Output 1 đến 8192 Output process Q0.0 đến
image Q1023.7
02 Read bits Input 10001 đến input process I0.0 đến
18192 image I1023.7
04 Read words Input 30001 đến input process IW0 đến
30512 image IW1022
05 Read bit Output 1 đến 8192 Output process Q0.0 đến
image Q1023.7
15 Read bits Output 1 đến 8192 Output process Q0.0 đến
image Q1023.7

Mã chức năng giao tiếp Modbus (3, 6, 16) sử dụng thanh ghi giữ Modbus có thể
là một phạm vi địa chỉ bộ nhớ M hoặc một khối dữ liệu. Loại holding register
được chỉ định bởi tham số MB_HOLD_REG trên lệnh MB_SLAVE.
Bảng sau đây cho thấy các ví dụ về địa chỉ Modbus để holding register ánh xạ là
được sử dụng cho các mã chức năng Modbus 03 (read words), 06 (write word)
và 16 (write words). Các giới hạn trên thực tế của địa chỉ DB được xác định bởi
giới hạn bộ nhớ công việc tối đa và M giới hạn bộ nhớ, cho mỗi kiểu CPU.

 Ánh xạ địa chỉ modbus vào bộ nhớ CPU:

Modbus MB_HOLD_REG parameter examples


12

master
MW100 DB10.DBw0 MW120 DB10.DBW50 “Recipe”.Inggredient
address
40001 MW100 DB10.DBW0 MW120 DB10.DBW50 “Recipe”.Inggredient[1]
40002 MW102 DB10.DBW2 MW122 DB10.DBW52 “Recipe”.Inggredient[2]
40003 MW104 DB10.DBW4 MW124 DB10.DBW54 “Recipe”.Inggredient[3]
40004 MW106 DB10.DBW6 MW126 DB10.DBW56 “Recipe”.Inggredient[4]
40005 MW108 DB10.DBW8 MW128 DB10.DBW58 “Recipe”.Inggredient[5]

 Bảng: chức năng chuẩn đoán


S7-1200 MB_SLAVE Modbus diagnostic functions
Codes Sub-function Mô tả
08 0000H Kiểm tra phản hồi dữ liệu truy vấn trả về:
MB_SLAVE sẽ phản hồi trở lại một Modbus master
một word dữ liệu được nhận.
08 000AH Xóa bộ đếm sự kiện giao tiếp: MB_SLAVE sẽ xóa
thông tin liên lạc bộ đếm sự kiện được sử dụng cho
chức năng Modbus 11.
11 Nhận bộ đếm sự kiện giao tiếp: MB_SLAVE sử dụng
giao tiếp nội bộ bộ đếm sự kiện để ghi lại số lượng
yêu cầu đọc và ghi Modbus thành công được gửi đến
Modbus slave. Bộ đếm không tăng trên bất kỳ Chức
năng 8 nào, Chức năng 11, hoặc các yêu cầu quảng
bá. Nó cũng không được tăng lên đối với bất kỳ yêu
cầu nào dẫn đến lỗi giao tiếp (ví dụ: lỗi chẵn lẻ hoặc
CRC).
3.3.3.3. Mã điều kiện
 Bảng mã lỗi giao tiếp và cấu hình:
STATUS (W#16#) Description
Người nhận đã đưa ra một yêu cầu điều khiển luồng để tạm dừng quá
trình truyền đang hoạt động và không bao đã cho phép truyền trong
80D1 thời gian chờ được chỉ định. Lỗi này cũng được tạo ra trong quá trình
điều khiển luồng phần cứng khi người nhận không xác nhận CTS
trong thời gian chờ quy định.
Yêu cầu truyền đã bị hủy bỏ vì không nhận được tín hiệu DSR từ
80D2
DCE.
80E0 Thông báo đã kết thúc vì bộ đệm nhận đã đầy.
80E1 Thông báo đã bị kết thúc do lỗi chẵn lẻ.
80E2 The message was terminated as a result of a framing error.

80E3
Thông báo đã bị kết thúc do lỗi chạy quá mức.
13

Thông báo bị kết thúc do độ dài được chỉ định vượt quá tổng kích
80E4
thước bộ đệm.
8180 Giá trị ID cổng không hợp lệ hoặc lỗi với lệnh MB_COMM_LOAD
8186 Địa chỉ trạm Modbus không hợp lệ.
8187 Con trỏ tới MB_HOLD_REG DB không hợp lệ: Vùng quá nhỏ
Con trỏ MB_HOLD_REG không hợp lệ tới bộ nhớ M hoặc DB (vùng
818C
DB phải cho phép cả địa chỉ tượng trưng và trực tiếp)

 Bảng mã lỗi protocol:


Trạng thái Mã phản hồi từ
Lỗi modbus protocol
(W#16#) slave
8380 Không phản hồi Lỗi CRC
Mã chức năng không được hỗ trợ hoặc không được
8381 01 hỗ trợ với broadcasts
8382 03 Lỗi độ dài dữ liệu
Lỗi địa chỉ dữ liệu hoặc địa chỉ nằm ngoài phạm vi
8383 02 hợp lệ của vùng DATA_PTR
8384 03 Lỗi giá trị dữ liệu
Giá trị mã chuẩn đoán dữ liệu không được hỗ trợ
8385 03
(mã chức năng 08)

You might also like