西門子: | 授權代理 |
單價: | 面議 |
發(fā)貨期限: | 自買家付款之日起 天內(nèi)發(fā)貨 |
所在地: | 直轄市 上海 |
有效期至: | 長期有效 |
發(fā)布時間: | 2023-12-14 16:41 |
最后更新: | 2023-12-14 16:41 |
瀏覽次數(shù): | 136 |
采購咨詢: |
請賣家聯(lián)系我
|
西門子銷售低壓斷路器經(jīng)銷商
PLC是什么意思?相信很多人處于大概知道是什么,但是又無法準確說出的階段,作為專注于為企業(yè)提供數(shù)據(jù)采集和設備控制解決方案的眾誠工業(yè),今天和大家探討一下。
而眾誠工業(yè)還能根據(jù)用戶需求,設計PLC控制程序,為客戶提供PLC編程和上位機軟件的定制化開發(fā)技術服務,滿足用戶的多種需求,比如,自主研發(fā)的潔凈空調(diào)智能控制系統(tǒng)和通風排風智能控制系統(tǒng)就配置PLC,不僅具有報警和定時控制功能,還兼具可擴展性和兼容性,系統(tǒng)能被第三方系統(tǒng)集成。
以上PLC的基本介紹,相信大家對PLC也有一個初步的了解。PLC的型號、品牌不同,對應著其結構形式、性能、編程方式等等都有所差異,價格也各不相同,在挑選時候,建議先要明確自己的應用需求,比如具體的應用場景,希望實現(xiàn)的運動和控制功能,已經(jīng)特殊的控制要求,這些將決定了PLC的選型和搭配組合。
簡單地說,PLC就是一種小型的計算機,和我們常用的計算機不同的是,PLC是設備之間通過數(shù)字信號進行互動,而我們常用的計算機,是人和計算機的互動。
控制是PLC的核心功能,其控制類型主要分為以下幾種1、開關量的開環(huán)控制。這是PLC*基本的控制功能,它能憑借其強大的邏輯運算能力,取代傳統(tǒng)繼電接觸器的控制系統(tǒng);
2、數(shù)據(jù)采集與監(jiān)控。這是PLC非常必要的功能,否則它將無法完成現(xiàn)場控制;
3、數(shù)字量智能控制。PLC具有實現(xiàn)接收和輸出高速脈沖的功能,近年來先進的PLC還開發(fā)了數(shù)字控制模塊和新型運動單元模塊,讓工程師更加輕松地通過PLC實現(xiàn)數(shù)字量控制;
4、PLC能通過模擬量采集和調(diào)節(jié)溫度、壓力、速度等參數(shù)。
正因為PLC功能強大,且具有設計方便、重量體積小、能耗低、改造工作量小、通用性強、維護方便等易學易用的特點,深受工程師的歡迎,因此應用非常廣泛,鋼鐵、石油、化工、紡織、交通、機械制造等等行業(yè)都能看到它的身影。
說明
發(fā)送或接收數(shù)據(jù)時發(fā)生通信錯誤
如果發(fā)送或接收數(shù)據(jù)時發(fā)生通信錯誤,則 CPU 將終止現(xiàn)有連接。錯誤如下:
? 80C4 - 臨時通信錯誤;將暫時終止指定的連接。
? 80C5 - 遠程伙伴已主動終止了連接。
? 80A1 - 指定連接已斷開或尚未建立。
即,可查看連接終止時所有返回的 STATUS 值,以及連接中止時僅輸出造成連接終止原因的
STATUS 代碼。
示例:如果接收數(shù)據(jù)時發(fā)生臨時通信錯誤,則先輸出 STATUS 7003 (ERROR=false),然后再
輸出 80C4 (ERROR=true)。
MB_RED_SERVER(作為 Modbus TCP 服務器通過 PROFINET 進行通信)
使用該指令可在 S7-1200 CPU 與支持 Modbus TCP 協(xié)議的設備之間建立連接。
表格 13-73 MB_RED_SERVER 指令
LAD/FBD SCL 描述
"MB_RED_SERVER_DB"(
DISCONNECT:=_bool_in_,
LICENSED=>_bool_out_
IDENT_CODE=>_string_out_
DR_NDR_0A=>_bool_out,
ERROR_0A=>_bool_out,
STATUS_0A=>_word_out_,
DR_NDR_1A=>_bool_out,
ERROR_1A=>_bool_out,
STATUS_1A=>_word_out_,
DR_NDR_0B=>_bool_out,
ERROR_0B=>_bool_out,
STATUS_0B=>_word_out_,
DR_NDR_1B=>_bool_out,
ERROR_1B=>_bool_out,
STATUS_1B=>_word_out_,
RED_ERR_S7=>_bool_out_,
RED_ERR_DEV=>_bool_out_,
TOT_COM_ERR=>_bool_out_,
MB_HOLD_REG:=_variant_inout_);
MB_RED_SERVER 指令作為
Modbus TCP 服務器通過
PROFINET 連接進行通信。
MB_RED_SERVER 指令將處理
Modbus TCP 客戶端的連接請求、
接收并處理 Modbus 請求并發(fā)描述
REG_KEY 1
IN STRING[17
]
授權注冊碼
必須在每個 CPU 上分別對 MB_RED_SERVER 指令進行授權。
DISConNECT IN Bool 使用 MB_RED_SERVER 指令建立與一個伙伴模塊的被動連接。服
務器會對連接描述中給出的指定或未指定 IP 地址的連接請求作出
響應。
接受一個連接請求后,可以使用該參數(shù)進行控制:
? 0:CPU 在無通信連接時建立被動連接。
? 1:終止連接初始化。如果設置了輸入,則 CPU 不會處理其它
客戶端請求,并且啟動終止連接。成功終止連接后,
STATUS_x 參數(shù)將輸出值 0003。
MB_HOLD_REG 2
IN_OUT Variant 指向 MB_RED_SERVER 指令中 Modbus 保持性寄存器的指針
MB_HOLD_REG 引用的存儲區(qū)必須大于兩個字節(jié)。
保持性寄存器中包含 Modbus 客戶端通過 Modbus 功能 3(讀
?。?(寫入)、16(多次寫入)和 23(在一個作業(yè)中讀寫)
可訪問的值。
LICENSED 1 OUT Bool ? 0:指令未獲授權
? 1:指令已獲授權
IDENT_CODE 1 OUT STRING[18
]
授權標識。使用此字符串申請 REG_KEY 注冊碼。.
DR_NDR_0A OUT Bool “Data Read”或“New Data Ready”至連接 0A:
? 0:無新數(shù)據(jù)
? 1:Modbus 客戶端讀取或寫入的新數(shù)據(jù)
ERROR_0A OUT Bool 如果在調(diào)用 MB_RED_SERVER 指令到連接 0A 的過程中出錯,則將
ERROR_0A 參數(shù)的輸出設置為“1”。有關錯誤原因的詳細信息,將
由 STATUS_0A 參數(shù)指定。
STATUS_0A 3 OUT Word 連接 0A 上指令的詳細狀態(tài)信息。
DR_NDR_1A OUT Bool “Data Read”或“New Data Ready”至連接 1A:
? 0:無新數(shù)據(jù)
? 1:Modbus 客戶端讀取或寫入的新數(shù)據(jù)
ERROR_1A OUT Bool 如果在調(diào)用 MB_RED_SERVER 指令到連接 1A 的過程中出錯,則將
ERROR_1A 參數(shù)的輸出設置為“1”。有關錯誤原因的詳細信息,將
由 STATUS_1A 參數(shù)指定。
STATUS_1A 3 OUT Word 連接 1A 上指令的詳細狀態(tài)信息。描述
DR_NDR_0B OUT Bool “Data Read”或“New Data Ready”至連接 0B:
? 0:無新數(shù)據(jù)
? 1:Modbus 客戶端讀取或寫入的新數(shù)據(jù)
ERROR_0B OUT Bool 如果在調(diào)用 MB_RED_SERVER 指令到連接 0B 的過程中出錯,則將
ERROR_0B 參數(shù)的輸出設置為“1”。有關錯誤原因的詳細信息,將
由 STATUS_0B 參數(shù)指定。
STATUS_0B 3 OUT Word 連接 0B 上指令的詳細狀態(tài)信息。
DR_NDR_1B OUT Bool “Data Read”或“New Data Ready”至連接 1B:
? 0:無新數(shù)據(jù)
? 1:Modbus 客戶端讀取或寫入的新數(shù)據(jù)
ERROR_1B OUT Bool 如果在調(diào)用 MB_RED_SERVER 指令到連接 1B 的過程中出錯,則將
ERROR_1B 參數(shù)的輸出設置為“1”。有關錯誤原因的詳細信息,將
由 STATUS_1B 參數(shù)指定。
STATUS_1B 3 OUT Word 連接 1B 上指令的詳細狀態(tài)信息。
RED_ERR_S7 3 OUT Bool ? 0:SIMATIC 中無冗余錯誤
? 1:SIMATIC 中存在冗余錯誤
RED_ERR_S7 3 OUT Bool ? 0:鏈接伙伴側無冗余錯誤
? 1:鏈接伙伴側存在冗余錯誤
RED_ERR_S7 3 OUT Bool ? 0:至少已建立 1 個組態(tài)連接
? 1:完全丟失通信,所有組態(tài)連接均終止
1 有關詳細信息,參見下文中“授權”部分。
2 有關詳細信息,參見下文中“MB_HOLD_REG 輸入?yún)?shù)”部分。
3 有關詳細信息,參見下文中“輸出參數(shù):ERROR_x、RED_ERR_S7、RED_ERR_DEV 和 TOT_COM_ERR”部分。
說明
安全信息
請注意,網(wǎng)絡中的每個客戶端對過程映像輸入和輸出以及 Modbus 保持寄存器定義的數(shù)據(jù)塊
或位存儲區(qū)域都具有讀寫訪問權限??梢赃x擇限制對某個 IP 地址的訪問,從而阻止未經(jīng)授
權的讀寫操作。但請注意,共享地址也可用于未經(jīng)授權的訪問CPU 可以用于:
? 處理多個服務器連接
? 在同一個服務器端口同時接受多個來自不同的客戶端的多個連接
連接的*大數(shù)目取決于所使用的 CPU,具體請參見相關 CPU 的技術規(guī)范。一個 CPU 的總連
接數(shù),包括 Modbus TCP 客戶端和服務器的連接數(shù),不能超過所支持的*大連接數(shù)。
連接服務器時,請記住以下規(guī)則:
? 每個 MB_RED_SERVER 連接都必須使用唯一的背景數(shù)據(jù)塊。
? 要連接到服務器端口的每個客戶端都需要一個唯一的連接/連接 ID。
? 連接 ID 在整個 CPU 范圍內(nèi)必須唯一。
Modbus 地址到過程映像的映射
MB_RED_SERVER 指令允許到達的 Modbus 功能(1、2、4、5 和 15)直接讀取和寫入訪問
CPU 的過程映像輸入和輸出(使用數(shù)據(jù)類型 BOOL 和 WORD)。
對于 S7-1200-CPU,輸入和輸出過程映像的地址空間為 1 KB。
下表列出了上述 Modbus 功能的地址空間:
Modbus 功能
功能代碼 功能 數(shù)據(jù)區(qū) 地址空間
01 讀?。何?Output 0 到 65.535
02 讀?。何?Input 0 到 65.535
04 讀?。篧ORD Input 0 到 65.535
05 寫入:位 Output 0 到 65.535
15 寫入:位 Output 0 到 65.535
通過功能代碼 3、6、16 和 23 將到達的 Modbus 請求寫入 Modbus 保持性寄存器或從寄存
器中讀?。赏ㄟ^ MB_HOLD_REG 參數(shù)或 Data_Area_Array 指定保持性寄存器)寫入輸出位
06 寫入保持性寄存器
08 診斷功能:
? 回送測試(子功能 0x0000):MB_RED_SERVER 指令接收數(shù)據(jù)字并按
原樣返回 Modbus 客戶端。
? 復位事件計數(shù)器(子功能 0x000A):使用指令 MB_RED_SERVER,可
復位以下事件計數(shù)器:“Success_Count”、“Xmt_Rcv_Count”、
“Exception_Count”、“Server_Message_Count”和“Re”。
11 診斷功能:獲取通信的事件計數(shù)器
MB_RED_SERVER 指令使用一個通信的內(nèi)部事件計數(shù)器,記錄發(fā)送到
Modbus 服務器上成功執(zhí)行的讀寫請求數(shù)。
執(zhí)行功能 8 或 11 時,事件計數(shù)器不會遞增。這種情況同樣適用于會導致
通信錯誤的請求。例如,發(fā)生協(xié)議錯誤(如,不支持所接收 Modbus 請求
中的功能代碼)。
15 寫入多個輸出位
16 寫入保持性寄存器
23 通過請求寫入和讀取保持性寄存通信節(jié)點可設計為獨立式或者冗余式。如果其中一個伙伴采用獨立式設計,則將其稱為單側
冗余。如果兩個伙伴均為冗余式設計,可將其稱為雙側冗余。
? 單側冗余:
– 必須為通信伙伴之間的每個連接組態(tài)一個連接。SIMATIC S7 的連接點稱為 0 和 1;通
信伙伴的連接點稱為 A 和 B。
R-CPU 或 H-CPU 1 是指連接點 0,R-CPU 或 H-CPU 2 為連接點 1。
– 組態(tài):如果 S7 采用冗余設計,則為 S7 連接點 0 到鏈接伙伴的節(jié)點 A 創(chuàng)建一個連接
(從 S7 連接點 0 到伙伴/節(jié)點 A 的連接 => 連接 0A),一個從 S7 連接點 1 到鏈接伙伴
的節(jié)點 A 的連接(從 S7 連接點 1 到伙伴/節(jié)點 A 的連接 => 連接 1A)。下圖給
客戶端和服務器的端口號
Modbus 客戶端使用的端口號從 2000 開始。通常通過端口號 502 對 Modbus 服務器進行尋
址。可以為多個連接組態(tài)端口 502(多端口),具體取決于 CPU。如果為本地端口 502 組
態(tài)至少兩個連接,則在未指定連接的情況下,將發(fā)出請求的客戶端隨機分配給現(xiàn)有的服務器
連接。不會自動將想要連接到 "MB_RED_SERVER" 指令的第一個客戶端分配給連接 0A。將客
戶端請求分配給服務器連接后,在連接終止前,分配在交換幀期間保持不變。
參數(shù)分配
對于 S7-1200,可以使用 MB_RED_SERVER 指令 V1.0 和 V1.1。CPU 通過 CPU 或 CM/CP 的
本地接口建立連接。CPU 使用 TCON_IP_V4 結構組態(tài)和建立連接。
MB_RED_SERVER 的組態(tài): 使用 MB_RED_SERVER 指令的組態(tài)對話框進行以下設置:
? 連接 0A、1A、0B 和 1B 的連接參數(shù)(有關冗余組態(tài)的更多信息,請參見上文的“運行和
冗余”。)
? 內(nèi)部參數(shù)(可選)
通過 MB_RED_SERVER 指令或通過工藝對象,可以打開組態(tài)對話框Modbus 主站可寫入輸出的尋址范圍的起始地
址(0 到 65535 個字節(jié))
UINT 0 Modbus 主站可寫入的輸出字節(jié)數(shù)。
示例:
? =0 和 =10:Modbus 主
站可寫入的輸出字節(jié)數(shù)為 0 到 9。
? =0:Modbus 主站無法寫入任何
輸出字節(jié)。
UINT 0 Modbus 主站可讀取輸出的尋址范圍的起始地
址(0 到 65535 個字節(jié))
UINT 0 Modbus 主站可讀取的輸出字節(jié)數(shù)。
示例:
? =0 和
=10:Modbus 主站可讀取
的輸出字節(jié)數(shù)為 0 to 9。
? =0:Modbus 主站無法讀
取任何輸出字節(jié)。
IB_Read_Start UINT 0 Modbus 主站可讀取輸入的尋址范圍的起始地
址(0 到 65535 個字節(jié))a_type 參數(shù)指定 Modbus 主站在該數(shù)據(jù)塊中映射的 MODBUS 數(shù)據(jù)類型。如果在 data_type
中輸入值“0”,則 Modbus 主站不使用相應的數(shù)據(jù)區(qū)域。如果 Modbus 主站要使用多個
Data_Area,則必須依次定義這些區(qū)域。Modbus 主站將不會處理 data_type = 0 之后的任何
條目。
標識符 數(shù)據(jù)類型 描述
0 未使用區(qū)域
1 輸出位(線圈) 位
2 輸入位(輸入) 位
3 保持性寄存器 字
4 輸入字(輸入寄存器) 字
db
db 參數(shù)指定映射 MODBUS 寄存器或下面定義的位值的數(shù)據(jù)塊。數(shù)據(jù)塊編號 0 為系統(tǒng)保留,
CPU 不允許使用。
start, length
start 指定 Modbus 主站在數(shù)據(jù)塊的數(shù)據(jù)字 0 中映射的第一個 Modbus 地址。length 參數(shù)定
義了 Modbus 主站在數(shù)據(jù)塊中映射的 MODBUS 地址的數(shù)量和長度。定義的數(shù)據(jù)區(qū)不得重疊。
length 參數(shù)不得等于 0。
示例:使用 Data_Area_Array 映射地址。
數(shù)據(jù)區(qū) 1 data_type 3:保持性寄存器
db 11
起始 0
長度 500
數(shù)據(jù)區(qū) 2 data_type 3:保持性寄存器
必須在每個 CPU 上分別對 MB_RED_SERVER 指令進行授權,且該指令需要付費。授權分為兩
個步驟:
? 顯示許可證 IDENT_CODE
? 輸入 REG_KEY 注冊密鑰:必須在每個 MB_RED_SERVER 指令中分配 REG_KEY 注冊密鑰。
將 REG_KEY 保存在共享數(shù)據(jù)塊中,所有 MB_RED_SERVER 指令均可通過該數(shù)據(jù)塊接收所
需的注冊密鑰。
顯示許可證 IDENT_CODE 的程序:
1. 根據(jù)循環(huán) OB 中的要求,為 MB_RED_SERVER 指令分配參數(shù)。將程序下載到 CPU,并將 CPU 設
置為 RUN。
2. 打開 Modbus 指令的背景數(shù)據(jù)塊,然后單擊“監(jiān)視全部”(Monitor all) 按鈕。
3. 背景數(shù)據(jù)塊將在 IDENT_CODE 輸出中顯示一個 18 位的字符串。輸入注冊密鑰 REG_KEY 的程序:
1. 通過“添加新塊...”(Add new block…) 插入具有唯一符號名的全新共享數(shù)據(jù)塊,例如
“License_DB”。
2. 在該塊中創(chuàng)建數(shù)據(jù)類型為 STRING[17] 的 REG_KEY 參數(shù)。
圖 13-25 REG_KEY
3. 使用復制/粘帖將已發(fā)送的 17 位注冊密鑰復制到“起始值”(Start value) 列。
4. 在循環(huán) OB 中,在 MB_RED_SERVER 指令的 REG_KEY 參數(shù)中,輸入許可證數(shù)據(jù)塊的名稱和字
符串名稱(例如 License_DB.REG_KEY)。
5. 將修改后的塊下載到 CPU??梢栽谶\行時間輸入注冊密鑰;不需要從 STOP 更改 RUN。
6. 現(xiàn)在,該 CPU 已獲得使用 MB_RED_SERVER 指令進行 Modbus/TCP 通信的授權;LICENSED 輸
出位為 TRUE。
授權缺失或不正確的糾正程序:
? 如果輸入的注冊密鑰錯誤或未輸入注冊密鑰,則 CPU 的 ERROR LED 指示燈閃爍。此外,
S7-1200 CPU 會在診斷緩沖區(qū)中生成有關許可證缺失的循環(huán)條目。
REG 輸入?yún)?shù)
MB_HOLD_REG 參數(shù)是一個指向數(shù)據(jù)緩沖區(qū)的指針,該緩沖區(qū)用于存儲 Modbus 客戶端對其
具有讀寫訪問權限的數(shù)據(jù)??墒褂萌謹?shù)據(jù)塊 (D) 或位存儲器 (M) 作為存儲區(qū):
? 數(shù)據(jù)塊 (D) 中地址的*大數(shù)量取決于 CPU 的*大數(shù)據(jù)塊大小。
? 位存儲器 (M) 中地址的*大數(shù)量取決于 CPU 的*大位存儲區(qū)。
下圖說明了針對 Modbus 功能 3(讀取多個 WORD)、6(寫入一個 WORD)、16(寫入多
個 WORD)和 23(讀寫多個 WORD)將 Modbus 地址映射到保持性寄存器的情況。數(shù) ERROR_x、STATUS_x、RED_ERR_S7、RED_ERR_DEV 和 TOT_COM_ERR
CPU 將錯誤消息顯示在 MB_RED_SERVER 指令的狀態(tài)輸出中:
說明
在程序編輯器中,錯誤狀態(tài)代碼可顯示為整數(shù)或十六進制值:
1. 在程序編輯器中打開所需的塊。
2. 單擊“啟用/禁用監(jiān)視”(Monitor on/off) 切換程序狀態(tài)的顯示格式。(如果尚未建立在線連接,
則打開“轉至在線”(Go online) 對話框。在此對話框中,可以建立在線連接。)
3. 選擇待監(jiān)視的變量,然后在快捷菜單的“顯示格式”(Display format) 中,選擇所需的顯示格式。
STATUS_x 參數(shù)(常規(guī)狀態(tài)信息)
STATUS
(W#16#
)
描述
0000 指令已執(zhí)行,且無任何錯誤。
0001 連接已建立。
0003 連接已終止。
0A90 MB_RED_SERVER 指令未授權。有關詳細信息,參見上文中“授權”部分。
0AFF 連接未組態(tài)且未使用。必須組態(tài) 0A 連接。
7000 未激活任何調(diào)用且未建立任何連接 (REQ=0, DISConNECT=1)。
7001 首次調(diào)用。已觸發(fā)連接建立操作。
7002 中間調(diào)用。正在建立連接。
7003 正在終止連接。
7005 正在發(fā)送數(shù)據(jù)。
7006 正在接收數(shù)據(jù)。
STATUS_x 參數(shù)(協(xié)議錯誤)
STATUS
(W#16#)
來自 MB_RED_SERVER 的錯誤
消息中的錯誤代碼 (B#16#)
描述
8380 - 接收到的 Modbus 幀格式錯誤或字節(jié)數(shù)過少。
8381 01 功能代碼不受支持。數(shù)據(jù)長度錯誤:
? 接收到的 Modbus 幀長度無效
? Modbus 幀頭中輸入的幀長度與實際接收到
的字節(jié)數(shù)不一致。
? Modbus 幀頭中輸入的字節(jié)數(shù)與實際接收到
的字節(jié)數(shù)不一致(功能 15 和 16)。
8383 02 數(shù)據(jù)地址錯誤或訪問了保持性寄存器
(MB_HOLD_REG 參數(shù))地址以外的區(qū)域。有
關詳細信息,請參見上文“MB_HOLD_REG”部
分。
8384 03 數(shù)據(jù)值錯誤(功能 05)。
8385 03 診斷代碼不受支持(**功能 08)。
STATUS_x 參數(shù)(參數(shù)錯誤)
STATUS
(W#16#
)
描述
80BB 參數(shù) ActiveEstablished 的值無效
只允許對服務器建立被動連接 (active_established = FALSE)。
8187 參數(shù) MB_HOLD_REG 的指針無效。數(shù)據(jù)區(qū)過小。
8389 數(shù)據(jù)區(qū)域定義無效:
? data_type 值無效
? 數(shù)據(jù)塊編號無效或不存在:
– db 值無效
– 數(shù)據(jù)塊編號不存在
– 數(shù)據(jù)塊編號已由另一個數(shù)據(jù)區(qū)域使用
– 數(shù)據(jù)塊具有優(yōu)化訪問權限
– 數(shù)據(jù)塊不在工作存儲器中
? length 值無效
? 屬于同一 MODBUS 數(shù)據(jù)類型的 MODBUS 地址范圍重疊