《西門子S7-200 PLC Modbus從站設(shè)置》由會員分享,可在線閱讀,更多相關(guān)《西門子S7-200 PLC Modbus從站設(shè)置(8頁珍藏版)》請?jiān)谘b配圖網(wǎng)上搜索。
1、
西門子S7-200 PLC Modbus從站設(shè)置??
2013-01-27 11:43:43|??分類:?PLC|舉報(bào)|字號?訂閱
西門子S7200做Modbus從站需要使用MBUS_INIT、MBUS_SLAVE即可。
MBUS_INIT指令被用于啟用和初始化或禁止Modbus通訊。在使用MBUS_SLAVE指令之前,必須正確執(zhí)行MBUS_INIT指令。指令完成后立即設(shè)定"完成"位,才能繼續(xù)執(zhí)行下一條指令。在每次掃描且EN輸入打開時(shí)執(zhí)行該指令。應(yīng)當(dāng)在每次通訊狀態(tài)改變時(shí)執(zhí)行MBUS_INIT指令。因此,EN輸入應(yīng)當(dāng)通過一個(gè)邊緣檢測元素用脈沖打開,或者僅在首次掃描時(shí)執(zhí)行。"模式"輸入
2、數(shù)值選擇通訊協(xié)議:輸入數(shù)值1將端口0指定給Modbus協(xié)議并啟用協(xié)議;將輸入數(shù)值0指定給PPI,并禁用Modbus協(xié)議。"波特"參數(shù)將波特率設(shè)為1200、2400、4800、9600、19200、38400、57600或115200。"地址"參數(shù)將地址設(shè)為1和247之間〔包括1和247〕的數(shù)值。
?
"校驗(yàn)"參數(shù)被設(shè)為與Modbus主設(shè)備校驗(yàn)相匹配??沙惺艿臄?shù)值為:
*0-無校驗(yàn)
*1-奇數(shù)校驗(yàn)
*2-偶數(shù)校驗(yàn)
?
"時(shí)延"參數(shù)通過將指定的毫秒數(shù)增加至標(biāo)準(zhǔn)Modbus信息超時(shí)的方法延長標(biāo)準(zhǔn)Modbus信息完畢超時(shí)條件。該參數(shù)的典型數(shù)值在有線網(wǎng)絡(luò)上應(yīng)為0。如果您在使用帶有糾錯(cuò)功能的
3、調(diào)制解調(diào)器,將時(shí)延設(shè)為50至100毫秒的數(shù)值。如果您在使用擴(kuò)展頻譜無線電,將時(shí)延設(shè)為10至100毫秒的數(shù)值。"時(shí)延"數(shù)值可以是0至32767毫秒。
MaxIQ參數(shù)將供Modbus地址00xxxx和01xxxx使用的I和Q點(diǎn)數(shù)設(shè)為0至128之間的數(shù)值。數(shù)值0禁止所有向輸入和輸出的讀取。建議使用的MaxIQ數(shù)值是128,該數(shù)值可在S7-200中存取所有的I和Q點(diǎn)。
?
MaxAI參數(shù)將供Modbus地址03xxx使用的字輸入〔AI〕存放器數(shù)目設(shè)為0至32之間的數(shù)值。數(shù)值0禁止模擬輸入的讀數(shù)。建議使用的MaxAI數(shù)值如下,這些數(shù)值可允許存取所有的S7-200模擬輸入:
?
*0用于CPU
4、221
*16用于CPU 222
*32用于CPU 224、226和226XM
?
MaxHold參數(shù)設(shè)定供Modbus地址04xxx使用的V存中的字保持存放器數(shù)目。例如,為了允許主設(shè)備存取2000個(gè)字節(jié)的V存,將MaxHold設(shè)為1000個(gè)字的數(shù)值〔保持存放器〕。
?
HoldStart參數(shù)是V存中保持存放器的起始地址。該數(shù)值一般被設(shè)為VB0,因此HoldStart參數(shù)被設(shè)為&VB0〔VB0地址〕。其他V存地址可指定為保持存放器的起始地址,以便在項(xiàng)目的其他地方使用VB0。Modbus主設(shè)備可存取V存MaxHold個(gè)字?jǐn)?shù),從HoldStart開始。
MBUS_INIT指令完成時(shí),
5、"完成"輸出打開。"錯(cuò)誤"輸出字節(jié)包含執(zhí)行指令的結(jié)果。請參閱Modbus從屬協(xié)議執(zhí)行錯(cuò)誤代碼中可能因執(zhí)行指令而產(chǎn)生的錯(cuò)誤條件。
?
MBUS_SLAVE指令被用于為Modbus主設(shè)備發(fā)出的請求服務(wù),并且必須在每次掃描時(shí)執(zhí)行,以便允許該指令檢查和回答Modbus請求。在每次掃描且EN輸入開啟時(shí)執(zhí)行該指令。MBUS_SLAVE指令無輸入?yún)?shù)。當(dāng)MBUS_SLAVE指令對Modbus請求作出應(yīng)答時(shí),"完成"輸出打開。如果沒有需要服務(wù)的請求時(shí),"完成"輸出關(guān)閉。"錯(cuò)誤"輸出包含執(zhí)行該指令的結(jié)果。該輸出只有在"完成"打開時(shí)才有效。如果"完成"關(guān)閉,錯(cuò)誤參數(shù)不會改變。請參閱Modbus從屬協(xié)議執(zhí)行錯(cuò)誤
6、代碼中可能因執(zhí)行該指令而導(dǎo)致的錯(cuò)誤條件。
?
錯(cuò)誤代碼???說明
0???無錯(cuò)誤
1???存圍錯(cuò)誤
2???非法波特率或校驗(yàn)
3???非法從屬地址
4???非法Modbus參數(shù)值
5???保持存放器與Modbus從屬符號重疊
6???收到校驗(yàn)錯(cuò)誤
7???收到CRC錯(cuò)誤
8???非法功能請求/功能不受支持
9???請求中的非法存地址
10??從屬功能未啟用
?
程序舉例如下:
NETWORK 2
//首次掃描時(shí)初始化Modbus從屬協(xié)議
//將從站地址設(shè)為6,將端口0設(shè)為9600波特,將校驗(yàn)設(shè)為無校驗(yàn),
//不允許存取所有的I、Q和AI數(shù)值,允許存
7、取20臺保存存放器〔40個(gè)字節(jié)〕
//從VB1000開始〔即VB1000- VB1039〕。
?
程序書寫后,需要對Modbus進(jìn)展存取區(qū)的設(shè)定,如下:
?
在菜單欄下:文件》庫存儲區(qū)--庫存儲區(qū)分配
?
在庫存儲區(qū)分配中,設(shè)立分配地址,確定。
PLC啟動(dòng)運(yùn)行后,如下:
?
PLC運(yùn)行后,使用Kepsever OPC讀取PLC地址,Kepsever配置情況:
?
ID:4?為PC連接PLC Modbus串口的端口;
波特率:9600,需與PLC對應(yīng);
數(shù)據(jù)位:8,需與PLC對應(yīng);
校驗(yàn):無,需與PLC對應(yīng);
流控制:無,需與PLC對應(yīng);
?
8、
Name:為連接設(shè)備名稱,可以自由定義;
Model:選擇為Modbus,需與PLC對應(yīng);
ID:為PLC Modbus地址,等于6,需與PLC對應(yīng);
V對應(yīng)MODBUS地址
項(xiàng)次
名稱
PLC地址
Modbus地址
備注
1
A_01
VW1000
400001
2
A_02
VW1002
400002
4?:代表V區(qū)vb1000后地址
3
A_03
VW1004
400003
PLC地址=〔Modbus地址-1〕*2
4
A_04
VW1006
400004
5
A_05
VW1008
400005
例如:
6
9、A_06
VW1010
400006
VW1008=〔5-1〕*2
7
A_07
VW1012
400007
8
A_08
VW1014
400008
9
A_09
VW1016
400009
10
A_10
VW1018
400010
11
A_11
VW1020
400011
12
A_12
VW1022
400012
13
A_13
VW1024
400013
14
A_14
VW1026
400014
15
A_15
VW1028
400015
16
A_16
VW1030
400016
17
A_17
VW1032
400017
18
A_18
VW1034
400018
19
A_19
VW1036
400019
20
A_20
VW1038
400020
Kepsever配置如下:
?
Kepsever配置后,進(jìn)入運(yùn)行監(jiān)視,即可看見可PLC的連接情況,如下:
?
8 / 8