西門子銷售數(shù)控軟件經(jīng)銷商PLC是什么意思?相信很多人處于大概知道是什么,但是又無法準(zhǔn)確說出的階段,作為專注于為企業(yè)提供數(shù)據(jù)采集和設(shè)備控制解決方案的眾誠工業(yè),今天和大家探討一下。
而眾誠工業(yè)還能根據(jù)用戶需求,設(shè)計(jì)PLC控制程序,為客戶提供PLC編程和上位機(jī)軟件的定制化開發(fā)技術(shù)服務(wù),滿足用戶的多種需求,比如,自主研發(fā)的潔凈空調(diào)智能控制系統(tǒng)和通風(fēng)排風(fēng)智能控制系統(tǒng)就配置PLC,不僅具有報(bào)警和定時(shí)控制功能,還兼具可擴(kuò)展性和兼容性,系統(tǒng)能被第三方系統(tǒng)集成。
以上PLC的基本介紹,相信大家對(duì)PLC也有一個(gè)初步的了解。
PLC的型號(hào)、品牌不同,對(duì)應(yīng)著其結(jié)構(gòu)形式、性能、編程方式等等都有所差異,價(jià)格也各不相同,在挑選時(shí)候,建議先要明確自己的應(yīng)用需求,比如具體的應(yīng)用場景,希望實(shí)現(xiàn)的運(yùn)動(dòng)和控制功能,已經(jīng)特殊的控制要求,這些將決定了PLC的選型和搭配組合。
簡單地說,PLC就是一種小型的計(jì)算機(jī),和我們常用的計(jì)算機(jī)不同的是,PLC是設(shè)備之間通過數(shù)字信號(hào)進(jìn)行互動(dòng),而我們常用的計(jì)算機(jī),是人和計(jì)算機(jī)的互動(dòng)。
控制是PLC的核心功能,其控制類型主要分為以下幾種1、開關(guān)量的開環(huán)控制。
這是PLC*基本的控制功能,它能憑借其強(qiáng)大的邏輯運(yùn)算能力,取代傳統(tǒng)繼電接觸器的控制系統(tǒng);2、數(shù)據(jù)采集與監(jiān)控。
這是PLC非常必要的功能,否則它將無法完成現(xiàn)場控制;3、數(shù)字量智能控制。
PLC具有實(shí)現(xiàn)接收和輸出高速脈沖的功能,近年來先進(jìn)的PLC還開發(fā)了數(shù)字控制模塊和新型運(yùn)動(dòng)單元模塊,讓工程師更加輕松地通過PLC實(shí)現(xiàn)數(shù)字量控制;4、PLC能通過模擬量采集和調(diào)節(jié)溫度、壓力、速度等參數(shù)。
正因?yàn)镻LC功能強(qiáng)大,且具有設(shè)計(jì)方便、重量體積小、能耗低、改造工作量小、通用性強(qiáng)、維護(hù)方便等易學(xué)易用的特點(diǎn),深受工程師的歡迎,因此應(yīng)用非常廣泛,鋼鐵、石油、化工、紡織、交通、機(jī)械制造等等行業(yè)都能看到它的身影。
m_Load 實(shí)例數(shù)據(jù)塊 (DB) 變量
下表顯示了可在程序中使用的 Modbus_Comm_Load 的背景數(shù)據(jù)塊中的公共靜態(tài)變量。
表格 13-77 Modbus_Comm_Load 背景數(shù)據(jù)塊靜態(tài)變量
變量 數(shù)據(jù)類型 默認(rèn)值 說明
ICHAR_GAP Word 0 字符間*大字符延遲時(shí)間。
該參數(shù)以毫秒為單位指定,用于增加
接收字符間的預(yù)期時(shí)間。
與此參數(shù)對(duì)應(yīng)的位時(shí)間個(gè)數(shù)加到
Modbus 默認(rèn)值的 35 個(gè)位時(shí)間(3.5 個(gè)字符時(shí)間)。
RETRIES Word 2 在返回錯(cuò)誤代碼 0
x80C8“無響應(yīng)”之前主站進(jìn)行的重復(fù)嘗試次
數(shù)。
EN_SUPPLY_VOLT Bool 0 啟用對(duì)缺失電源電壓 L+ 的診斷。
MODE USInt 0 工作模式
有效工作模式如下:
? 0 = 全雙工 (RS232)
? 1 = 全雙工 (RS422) 四線制模式(點(diǎn)對(duì)點(diǎn))
? 2 = 全雙工 (RS422) 四線制模式(多主站,CM PtP,ET
200SP)
? 3 = 全雙工 (RS422) 四線制模式(多從站,CM PtP,ET
200SP)
? 4 = 半雙工 (RS485) 雙線模式(參見下面的注釋)
LINE_PRE USInt 0 接收線路初始狀態(tài)
有效的初始狀態(tài)如下:
? 0 =“無”初始狀態(tài)(參見下面的注釋)。
? 1 = 信號(hào) R(A) = 5 V DC,信號(hào) R(B) = 0 V DC (斷路檢測):
通過該初始狀態(tài)可進(jìn)行斷路檢測。
僅可配合如下選項(xiàng)使用:“全雙工 (RS422) 四線制模式(點(diǎn)
對(duì)點(diǎn)連接)”和“全雙工 (RS422) 四線制模式(多點(diǎn)從
站)”。
? 2 = 信號(hào) R(A) = 0 V DC,信號(hào) R(B) = 5 V DC:
該默認(rèn)設(shè)置對(duì)應(yīng)空閑狀態(tài)(無激活的發(fā)送操作)。
無法通過
該初始狀態(tài)進(jìn)行斷路檢測。
BRK_DET USInt 0 斷路檢測
以下選擇有效:
? 0 = 禁止斷路檢測據(jù)類型 默認(rèn)值 說明
EN_DIAG_ALARM Bool 0 激活診斷中斷:
? 0 = 未激活
? 1 = 已激活
STOP_BITS USInt 1 停止位的數(shù)目:
? 1 = 1 個(gè)停止位
? 2 = 2 個(gè)停止位
? 0,3 到 255 = 保留
說明
使用 PROFIBUS 電纜連接 CM 1241 的 RS485 接口時(shí)需要此設(shè)置
表格 13-78 Modbus_Comm_Load 執(zhí)行條件代碼 1
STATUS (W#16#) 說明
0000 無錯(cuò)誤
8180 端口 ID 值無效(通信模塊的端口/硬件標(biāo)識(shí)符錯(cuò)誤)
8181 波特率值無效
8182 奇偶校驗(yàn)值無效
8183 流控制值無效
8184 響應(yīng)超時(shí)值無效(響應(yīng)超時(shí)小于*小值 5 ms)
8185 MB_DB 參數(shù)不是 Modbus_Master 或 Modbus_Slave 指令的背景數(shù)據(jù)塊。
1 除了上述列出的 Modbus_Comm_Load 錯(cuò)誤,還可能返回底層 PtP 通信指令的錯(cuò)誤r(作為 Modbus RTU 主站通過 SIPLUS I/O 或 PtP 端口通信)指令
表格 13-79 Modbus_Master 指令
LAD/FBD SCL 描述
"Modbus_Master_DB"(
REQ:=_bool_in_,
MB_ADDR:=_uint_in_,
MODE:=_usint_in_,
DATA_ADDR:=_udint_in_,
DATA_LEN:=_uint_in_,
DONE=>_bool_out_,
BUSY=>_bool_out_,
ERROR=>_bool_out_,
STATUS=>_word_out_,
DATA_PTR:=_variant_inout_);
Modbus_Master 指令作為 Modbus 主站利用
之前執(zhí)行 Modbus_Comm_Load 指令組態(tài)的端
口進(jìn)行通信。
將 Modbus_Master 指令放入程
序時(shí)自動(dòng)分配背景數(shù)據(jù)塊。
指定
Modbus_Comm_Load 指令的 MB_DB 參數(shù)時(shí)
將使用該 Modbus_Master 背景數(shù)據(jù)塊。
表格 13-80 參數(shù)的數(shù)據(jù)類型
參數(shù)和類型 數(shù)據(jù)類型 描述
REQ IN Bool 0 = 無請(qǐng)求
1 = 請(qǐng)求將數(shù)據(jù)傳送到 Modbus 從站
MB_ADDR IN V1.0: USInt
V2.0: UInt
Modbus RTU 站地址:
標(biāo)準(zhǔn)尋址范圍(1 到 247)
擴(kuò)展尋址范圍(1 到 65535)
值 0 被保留用于將消息廣播到所有 Modbus 從站。
只有 Modbus 功
能代碼 05、06、15 和 16 是可用于廣播的功能代碼。
MODE IN USInt 模式選擇:指定請(qǐng)求類型(讀、寫或診斷)。
請(qǐng)參見下面的
Modbus 功能表了解詳細(xì)信息。
DATA_ADDR IN UDInt 從站中的起始地址:指定要在 Modbus 從站中訪問的數(shù)據(jù)的起始地
址。
請(qǐng)參見下面的 Modbus 功能表了解有效地址信息。
DATA_LEN IN UInt 數(shù)據(jù)長度:指定此請(qǐng)求中要訪問的位數(shù)或字?jǐn)?shù)。
請(qǐng)參見下面的
Modbus 功能表了解有效長度信息。
DATA_PTR IN_OUT Variant 數(shù)據(jù)指針:指向要寫入或讀取的數(shù)據(jù)的 M 或 DB 地址(未經(jīng)優(yōu)化的
DB 類型)。
DONE OUT Bool 上一請(qǐng)求已完成且沒有出錯(cuò)后,DONE 位將保持為 TRUE 一個(gè)掃描
周期時(shí)間。
BUSY OUT Bool ? 0 - 無 Modbus_Master 操作正在進(jìn)行
? 1 - Modbus_Master 操作正在進(jìn)行描述
ERROR OUT Bool 上一請(qǐng)求因錯(cuò)誤而終止后,ERROR 位將保持為 TRUE 一個(gè)掃描周期
時(shí)間。
STATUS 參數(shù)中的錯(cuò)誤代碼值僅在 ERROR = TRUE 的一個(gè)掃
描周期內(nèi)有效。
STATUS OUT Word 執(zhí)行條件代碼
Modbus_Master 通信規(guī)則
? 必須先執(zhí)行 Modbus_Comm_Load 組態(tài)端口,然后 Modbus_Master 指令才能與該端口通
信。
? 如果要將某個(gè)端口用于初始化 Modbus 主站請(qǐng)求,則 Modbus_Slave 不應(yīng)使用該端口。
Modbus_Master 執(zhí)行的一個(gè)或多個(gè)實(shí)例可使用該端口,但是對(duì)于該端口,所有
Modbus_Master 執(zhí)行都必須使用同一個(gè) Modbus_Master 背景數(shù)據(jù)塊。
? Modbus 指令不使用通信中斷事件來控制通信過程。
用戶程序必須輪詢 Modbus_Master
指令以了解傳送和接收的完成情況。
? 對(duì)于給定的端口,從程序循環(huán) OB 中調(diào)用所有 Modbus_Master 執(zhí)行。
Modbus_Master 指
令只能在一個(gè)程序循環(huán)或循環(huán)/延時(shí)執(zhí)行等級(jí)執(zhí)行。
它們不能同時(shí)在兩種執(zhí)行優(yōu)先級(jí)中執(zhí)
行。
如果一個(gè) Modbus_Master 指令被另一個(gè)執(zhí)行優(yōu)先級(jí)更高的 Modbus_Master 取代,將
導(dǎo)致不正確的操作。
Modbus_Master 指令不能在啟動(dòng)、診斷或時(shí)間錯(cuò)誤執(zhí)行優(yōu)先級(jí)執(zhí)行。
? Modbus_Master 指令啟動(dòng)傳輸后,必須連續(xù)執(zhí)行已啟用 EN 輸入的該實(shí)例,直到返回狀態(tài)
DONE=1 或狀態(tài) ERROR=1 為止。
在這兩個(gè)事件其中之一發(fā)生前,一個(gè)特殊的
Modbus_Master 實(shí)例被視為已激活。
原始實(shí)例激活后,調(diào)用已啟用 REQ 輸入的其它任何
實(shí)例都將導(dǎo)致錯(cuò)誤。
如果原始實(shí)例的連續(xù)執(zhí)行過程停止,則請(qǐng)求狀態(tài)保持激活一段時(shí)間,
該時(shí)間由靜態(tài)變量“Blocked_Proc_Timeout”指定。
一旦超出該時(shí)間段,則下一個(gè)使用激活
的 REQ 輸入調(diào)用的 Modbus_Master 指令成為激活實(shí)例。
這可以防止單個(gè) Modbus_Master
指令獨(dú)占或鎖定對(duì)端口的訪問。
如果在由靜態(tài)變量“Blocked_Proc_Timeout”指定的時(shí)間段
內(nèi)沒有啟用原始激活的實(shí)例,則下次執(zhí)行此實(shí)例(未設(shè)置 REQ)時(shí)將清除激活狀態(tài)。
如
果設(shè)置了 REQ,則此次執(zhí)行將啟動(dòng)新的 Modbus_Master 請(qǐng)求,如同其它實(shí)例未曾激活一
樣。
REQ 參數(shù)
0 = 無請(qǐng)求;1 = 請(qǐng)求將數(shù)據(jù)傳送到 Modbus 從站
可使用電平或邊沿觸發(fā)的觸點(diǎn)控制此輸入。
只要此輸入啟用,狀態(tài)機(jī)便會(huì)啟動(dòng),以確保在當(dāng)
前請(qǐng)求完成前不允許使用同一背景數(shù)據(jù)塊的任何其它 Modbus_Master 發(fā)出請(qǐng)求。
在當(dāng)前請(qǐng)
求執(zhí)行期間,將捕獲所有其它輸入狀態(tài)并內(nèi)部保存,直到接收到響應(yīng)或檢測到錯(cuò)誤如果在當(dāng)前請(qǐng)求完成前 REQ 輸入 = 1,從而再次執(zhí)行 Modbus_Master 的同一實(shí)例,則不會(huì)
進(jìn)行任何后續(xù)傳送。
但是,如果當(dāng)前請(qǐng)求已完成,因?yàn)?REQ 輸入 = 1 而再次執(zhí)行
Modbus_Master 時(shí),便會(huì)發(fā)出新請(qǐng)求。
DATA_ADDR 和 MODE 參數(shù)用于選擇 Modbus 功能類型
DATA_ADDR(從站中的 Modbus 起始地址):指定要在 Modbus 從站中訪問的數(shù)據(jù)的起始
地址。
Modbus_Master 指令使用 MODE 輸入而非功能代碼輸入。
MODE 和 Modbus 地址一起確定
實(shí)際 Modbus 消息中使用的功能代碼。
下表列出了 MODE 參數(shù)、Modbus 功能代碼和 Modbus
地址范圍之間的對(duì)應(yīng)關(guān)系。
表格 13-81 Modbus 功能
MODE Modbus 功能 數(shù)據(jù)長度 操作和數(shù)據(jù) Modbus 地址
0 01 1 到 2000
1 到 1992 1
讀取輸出位:
每個(gè)請(qǐng)求 1 到 1992 或 2000 個(gè)位
1 到 到 2000
1 到 1992 1
讀取輸入位:
每個(gè)請(qǐng)求 1 到 1992 或 2000 個(gè)位
10001 到 到 125
1 到 124 1
讀取保持寄存器:
每個(gè)請(qǐng)求 1 到 124 或 125 個(gè)字
40001 到 49999 或
400001 到
1 到 125
1 到 124 1
讀取輸入字:
每個(gè)請(qǐng)求 1 到 124 或 125 個(gè)字
30001 到 1 到 125
1 到 124 1
讀取輸入字:
每個(gè)請(qǐng)求 1 到 124 或 125 個(gè)字
00000 到 寫入一個(gè)輸出位:
每個(gè)請(qǐng)求一位
1 到 寫入一個(gè)保持寄存器:
每個(gè)請(qǐng)求 1 個(gè)字
40001 到 49999 或
400001 到
2 到 1968
2 到 1960 1
寫入多個(gè)輸出位:
每個(gè)請(qǐng)求 2 到 1960 或 1968 個(gè)位
1 到 到 123
2 到 122 1
寫入多個(gè)保持寄存器:
每個(gè)請(qǐng)求 2 到 122 或 123 個(gè)字?jǐn)?shù)據(jù)長度 操作和數(shù)據(jù) Modbus 地址
2 15 1 到 1968
2 到 1960 1
寫入一個(gè)或多個(gè)輸出位:
每個(gè)請(qǐng)求 1 到 1960 或 1968 個(gè)位
1 到 到 123
1 到 122 1
寫入一個(gè)或多個(gè)保持寄存器:
每個(gè)請(qǐng)求 1 到 122 或 123 個(gè)字
40001 到 49999 或
400001 到
0 讀取從站通信狀態(tài)字和事件計(jì)數(shù)器。
狀態(tài)
字指示忙閑情況(0 - 不忙,0
xFFFF -
忙)。
每成功完成一條消息,事件計(jì)數(shù)器
的計(jì)數(shù)值遞增。
對(duì)于該功能,Modbus_Master 的
DATA_ADDR 和 DATA_LEN 操作數(shù)都將被忽
略。
80 08 1 利用數(shù)據(jù)診斷代碼 0
x0000 檢查從站狀態(tài)
(回送測試 - 從站回送請(qǐng)求)
每個(gè)請(qǐng)求 1 個(gè)字
81 08 1 利用數(shù)據(jù)診斷代碼 0
x000A 重新設(shè)置從站
事件計(jì)數(shù)器
每個(gè)請(qǐng)求 1 個(gè)字
3 到
10、
12 到
79、
82 到
255
保留
1 對(duì)于“擴(kuò)展尋址”模式,根據(jù)功能所使用的數(shù)據(jù)類型,數(shù)據(jù)的*大長度將減小 1 個(gè)字節(jié)或 1 個(gè)字。
數(shù)
DATA_PTR 參數(shù)指向要寫入或讀取的 DB 或 M 地址。
如果使用數(shù)據(jù)塊,則必須創(chuàng)建一個(gè)全局
數(shù)據(jù)塊為讀寫 Modbus 從站提供數(shù)據(jù)存儲(chǔ)位置。
說明
DATA_PTR 數(shù)據(jù)塊類型必須允許直接尋址
該數(shù)據(jù)塊必須允許直接(**)尋址和符號(hào)尋址。
創(chuàng)建該數(shù)據(jù)塊時(shí),必須選擇“標(biāo)準(zhǔn)”
(Standard) 訪問屬性。
自 Modbus_Master 指令版本 V4.0 或更高版本起,可以啟用數(shù)據(jù)塊屬性“優(yōu)化塊訪問”
(Optimized block access)。
只能在具有以下數(shù)據(jù)類型的優(yōu)化存儲(chǔ)器中使用單個(gè)元素或元素?cái)?shù)
組:Bool、Byte、Char、Word、Int、DWord、Dint、Real、USInt、UInt、UDInt、SInt 或
WChar。
DATA_PTR 參數(shù)的數(shù)據(jù)塊結(jié)構(gòu)
? 這些數(shù)據(jù)類型對(duì) Modbus 地址 30001 到 39999、40001 到 49999 和 400001 到 465536
的字讀取有效,對(duì) Modbus 地址 40001 到 49999 和 400001 到 465536 的字寫入也有效。
– WORD、UINT 或 INT 數(shù)據(jù)類型的標(biāo)準(zhǔn)數(shù)組
– 指定的 WORD、UINT 或 INT 結(jié)構(gòu),其中每個(gè)元素都具有唯一的名稱和 16 位數(shù)據(jù)類型。
– 指定的復(fù)雜結(jié)構(gòu),其中每個(gè)元素都具有唯一的名稱以及 16 或 32 位數(shù)據(jù)類型。
? 用于 Modbus 地址 00001 到 09999 的位讀取和寫入和 10001 到 19999 的位讀取。
– 布爾數(shù)據(jù)類型的標(biāo)準(zhǔn)數(shù)組。
– 唯一命名的布爾變量的已命名布爾結(jié)構(gòu)。
? 盡管不是必需的,但還是建議每個(gè) Modbus_Master 指令都具有各自的單獨(dú)存儲(chǔ)區(qū)。
此建
議的原因在于,如果多個(gè) Modbus_Master 指令讀取和寫入同一個(gè)存儲(chǔ)區(qū),發(fā)生數(shù)據(jù)損壞
的可能性會(huì)更大。
? 不要求 DATA_PTR 數(shù)據(jù)區(qū)位于同一個(gè)全局?jǐn)?shù)據(jù)塊中。
可創(chuàng)建一個(gè)具有多個(gè)區(qū)域的數(shù)據(jù)塊供
Modbus 讀取、一個(gè)數(shù)據(jù)塊供 Modbus 寫入或一個(gè)數(shù)據(jù)塊用于各個(gè)從站。
r 指令數(shù)據(jù)塊 (DB) 變量
下表顯示了可在程序中使用的 Modbus_Master 的背景數(shù)據(jù)塊中的公共靜態(tài)變量。
表格 13-82 Modbus_Master 背景數(shù)據(jù)塊靜態(tài)變量
變量 數(shù)據(jù)類型 默認(rèn)值 描述
Blocked_Proc_Timeo
ut
Real 3.0 在 Modbus_Master 實(shí)例受阻后,移除該激活的實(shí)例前需等待的
時(shí)間(秒)。
例如,當(dāng)已發(fā)出 Modbus_Master 請(qǐng)求,但程序在
徹底完成該請(qǐng)求前停止調(diào)用該 Modbus_Master 功能時(shí),就會(huì)出
現(xiàn)這種情況。
時(shí)間值必須大于 0 且小于 55 秒,否則發(fā)生錯(cuò)誤。
Extended_Addressin
g
Bool FALSE 組態(tài)單字節(jié)或雙字節(jié)從站尋址:
? FALSE = 單字節(jié)地址;0 到 247
? TRUE = 雙字節(jié)地址(相當(dāng)于擴(kuò)展尋址);0 到 65535
MB_DB MB_ba
se - Modbus_Comm_Load 指令的 MB_DB 參數(shù)必須連接
Modbus_Master 指令的 MB_DB 參數(shù)。
用戶程序可以將值寫入 Blocked_Proc_Timeout 和 Extended_Addressing 變量,以控制
Modbus_Master 操作。
有關(guān)如何在程序編輯器中使用這些變量的示例以及有關(guān) Modbus 擴(kuò)
展尋址的詳細(xì)信息,請(qǐng)參見 HR@Start@Offset (頁 1111) 和 Extended_Addressing (頁 1111)
的 Modbus_Slave 主題說明。
條件代碼
表格 13-83 Modbus_Master 執(zhí)行條件代碼(通信和組態(tài)錯(cuò)誤)1
STATUS (W#16#) 描述
0000 無錯(cuò)誤
80C8 從站超時(shí)。
指定從站在指定時(shí)間內(nèi)沒有響應(yīng)。
請(qǐng)檢查從站設(shè)備的波特率、奇偶性和
接線。
嘗試過所有組態(tài)的重試操作后,才警告此錯(cuò)誤。
80C9 Modbus_Master 指令因以下原因發(fā)生超時(shí):
? 該指令正在等待來自模塊的響應(yīng),而該模塊正用于通信。
? Blocked_Proc_Timeout 值設(shè)置得太小。
如果 PROFIBUS 或 PROFINET 分布式 I/O 設(shè)備從以下狀況之一返回,就會(huì)報(bào)告該錯(cuò)誤:
? 電源或通信中斷
? 通信模塊插/拔事件
在這些情況下,將重新加載 PLC 的硬件組態(tài),并且必須再次執(zhí)行述
80D1 接收方發(fā)出了暫停主動(dòng)傳輸?shù)牧骺刂普?qǐng)求并且在指定的等待時(shí)間內(nèi)未重新激活該傳輸。
在硬件流控制期間,如果接收方在指定的等待時(shí)間內(nèi)沒有聲明 CTS,也會(huì)產(chǎn)生該錯(cuò)誤。
80D2 傳送請(qǐng)求中止,因?yàn)闆]有從 DCE 收到任何 DSR 信號(hào)。
80E0 因接收緩沖區(qū)已滿,消息被終止。
80E1 因出現(xiàn)奇偶校驗(yàn)錯(cuò)誤,消息被終止。
80E2 因組幀錯(cuò)誤,消息被終止。
80E3 因出現(xiàn)超限錯(cuò)誤,消息被終止。
80E4 因指定長度超出總緩沖區(qū)大小,消息被終止。
8180 無效端口 ID 值或 Modbus_Comm_Load 指令出錯(cuò)
8186 Modbus 站地址無效
8188 指定給廣播請(qǐng)求的模式無效
8189 數(shù)據(jù)地址值無效
818A 數(shù)據(jù)長度值無效
818B 指向本地?cái)?shù)據(jù)源/目標(biāo)的指針無效:大小不正確
818C DATA_PTR 的指針無效或 Blocked_Proc_Timeout 無效。
數(shù)據(jù)區(qū)域必須是以下之一:
? 典型數(shù)據(jù)塊
? 符號(hào)或保持?jǐn)?shù)據(jù)塊中基本數(shù)據(jù)類型的數(shù)組
? M 存儲(chǔ)器
8200 端口正忙于處理傳送請(qǐng)求。
8280 讀取模塊時(shí)否定確認(rèn)。
檢查 PORT 參數(shù)處的輸入。
這種情況的可能原因是 PROFIBUS
或 PROFINET 分布式 I/O 模塊斷開,可由電源中斷或拉動(dòng)模塊引起。
8281 寫入模塊時(shí)否定確認(rèn)。
檢查 PORT 參數(shù)處的輸入。
這種情況的可能原因是 PROFIBUS
或 PROFINET 分布式 I/O 模塊斷開,可由電源中斷或拉動(dòng)模塊引起。
表格 13-84 Modbus_Master 執(zhí)行條件代碼(Modbus 協(xié)議錯(cuò)誤)1
STATUS (W#16#) 從站的響應(yīng)代碼 Modbus 協(xié)議錯(cuò)誤
8380 - CRC 錯(cuò)誤
8381 01 不支持此功能代碼
8382 03 數(shù)據(jù)長度錯(cuò)誤
8383 02 數(shù)據(jù)地址錯(cuò)誤或地址超出 DATA_PTR 區(qū)的有效范圍Modbus 協(xié)議錯(cuò)誤
8384 大于 03 數(shù)據(jù)值錯(cuò)誤
8385 03 不支持此數(shù)據(jù)診斷代碼值(功能代碼 08)
8386 - 響應(yīng)中的功能代碼與請(qǐng)求中的代碼不匹配。
8387 - 響應(yīng)的從站錯(cuò)誤
8388 - 從站對(duì)寫請(qǐng)求的響應(yīng)不正確。
從站返回的寫請(qǐng)求與主站實(shí)
際發(fā)送的寫請(qǐng)求不匹配。
1 除了上述列出的 Modbus_Master 錯(cuò)誤,還可能返回底層 PtP 通信指令的錯(cuò)誤。
說明
設(shè)置 Profibus 通信的*大記錄長度
在使用 CM1243-5 Profibus 主站模塊控制使用 RS232、RS422 或 RS485 點(diǎn)對(duì)點(diǎn)模塊的
ET 200SP 或 ET 200MP Profibus 設(shè)備時(shí),需要按如下規(guī)定將“max_record_len”數(shù)據(jù)塊變量明
確設(shè)置為 240:
運(yùn)行 Modbus_Comm_Load 后,在背景數(shù)據(jù)塊的 Send_P2P 部分(例如,
"Modbus_Master_DB".Send_P2P.max_record_len)將“max_record_len”設(shè)為 240。
只有 Profibus 通信需要明確分配 max_record_len ;Profinet 通信已經(jīng)使用有效的
max_record_len 值。
描述
"Modbus_Slave_DB"(
MB_ADDR:=_uint_in_,
NDR=>_bool_out_,
DR=>_bool_out_,
ERROR=>_bool_out_,
STATUS=>_word_out_,
MB_HOLD_REG:=_variant_inout_);
Modbus_Slave 指令允許用戶程序用以下
兩種方式進(jìn)行通信:
? 作為 Modbus RTU 從站通過 CM
(RS485 或 RS232)和 CB (RS485) 上
的 PtP 端口進(jìn)行通信
? 作為 Modbus RTU 從站通過 Modbus
RTU SIPLUS I/O 選項(xiàng)進(jìn)行通信:
– 安裝 ET 200MP S7-1500CM PtP
(RS485/422 或 RS232)。
– 安裝 ET 200SP S7-1500 CM PtP
(RS485/422 或 RS232)。
遠(yuǎn)程 Modbus RTU 主站發(fā)出請(qǐng)求時(shí),用戶
程序會(huì)通過執(zhí)行 Modbus_Slave 進(jìn)行響
應(yīng)。
STEP 7 在插入指令時(shí)自動(dòng)創(chuàng)建背景數(shù)
據(jù)塊。
在為 Modbus_Comm_Load 指令指
定 MB_DB 參數(shù)時(shí)使用此
Modbus_Slave_DB 名稱。
表格 13-86 參數(shù)的數(shù)據(jù)類型
參數(shù)和類型 數(shù)據(jù)類型 描述
MB_ADDR IN V1.0: USInt
V2.0: UInt
Modbus 從站的站地址:
標(biāo)準(zhǔn)尋址范圍(1 到 247)
擴(kuò)展尋址范圍(0 到 65535)
MB_HOLD_REG IN_OUT Variant 指向 Modbus 保持寄存器 DB 的指針:Modbus 保持寄存器
可以是 M 存儲(chǔ)器或數(shù)據(jù)塊。
NDR OUT Bool 新數(shù)據(jù)就緒:
? 0 – 無新數(shù)據(jù)
? 1 – 表示 Modbus 主站已寫入新數(shù)據(jù)