SIMATIC S7-200SMART, ANALOG INPUT SM TC04 4AI, 4 AI, 4 X AI THERMOCOUPLE
|
,享受西門子
(SIEMENS)上海贊國自動化科技有限公司(西門子分銷商)
上海贊國自動化科技有限公司
聯(lián)系人: 顏工
電話(Tel):-021-31129695
傳真(Fax):-021-31129695
聯(lián)系QQ :983991865
24小時(shí)銷售技術(shù)服務(wù)熱線 :15000708648
地址(Add):上海市松江區(qū)思賢路1855弄91號
我公司只銷售西門子原裝正品免費(fèi)一年保修
一般信息 | ||
冗余 | ||
● 冗余功能 | 否 | |
電源電壓 | ||
額定值 (DC) | ||
● DC 24 V | 是; 標(biāo)準(zhǔn)24 V | |
允許范圍,下限 (DC) | 20.4 V | |
允許范圍,上限 (DC) | 28.8 V | |
反極性保護(hù) | 是 | |
電源導(dǎo)線的外部保險(xiǎn)裝置(推薦) | 不需要 | |
輸入電流 | ||
耗用電流,典型值 | 30 mA; 24 V DC 用戶電源的電流消耗 | |
耗用電流,最大值 | 40 mA; 20.4 V DC 時(shí)和最大負(fù)載時(shí) | |
來自背板總線 DC 5 V,典型值 | 70 mA; 5 V DC 來自 CPU 模塊 | |
來自背板總線 DC 5 V,最大值 |
80 mA |
SINAMICS S120具有0.12 - 4500 kW的超寬功率應(yīng)用范圍。其中單軸AC/AC驅(qū)動器分為模塊型和裝機(jī)機(jī)柜型;多軸DC/AC驅(qū)動器分為緊湊書本型、書本型、裝機(jī)機(jī)柜型和機(jī)柜單元。
S120允許不同功率等級與控制性能的單元自由組合,所有系統(tǒng)組件之間都具有高度的兼容性。同時(shí)可通過簡單并聯(lián)就可實(shí)現(xiàn)功率的增容,為精確選型提供可能,其高度靈活的模塊化設(shè)計(jì)完全能夠滿足客戶的各種要求。
---結(jié)構(gòu)緊湊的變頻器
---兩象限運(yùn)行,不可向電網(wǎng)回饋能量
---包含組件:
------整流側(cè):晶閘管或二極管模塊 + 預(yù)充電電路
------直流母線電容組
------逆變側(cè):IGBT模塊
------進(jìn)線濾波器,將干擾限制在 EN 61800-3 規(guī)定的 C3 類的限制范圍內(nèi)(僅裝機(jī)裝柜型)
---功率范圍:
------0.12 – 0.75 kW @ 1AC 200 - 240 V
------0.37 – 250 kW @ 3AC 380 - 480 V
1.基本型電源:緊湊、經(jīng)濟(jì)的解決方案,用于無需能量回饋的驅(qū)動系統(tǒng)
---單象限運(yùn)行,不可向電網(wǎng)回饋能量
---結(jié)構(gòu)緊湊,價(jià)格經(jīng)濟(jì)
---包含組件:
------晶閘管或二極管模塊
------直流母線電容組
------預(yù)充電電路
------進(jìn)線濾波器,將干擾限制在 EN 61800-3 規(guī)定的 C3 類的限制范圍內(nèi)(僅裝機(jī)裝柜型)
2.智能型電源:不可控整流/回饋的解決方案,用于需要能量回饋的驅(qū)動系統(tǒng)
---四象限運(yùn)行,可向電網(wǎng)回饋能量,采用IGBT模塊可防止逆變顛覆
---無需自耦變壓器
---結(jié)構(gòu)緊湊,價(jià)格經(jīng)濟(jì)
---包含組件:
---IGBT模塊
---直流母線電容組
---進(jìn)線電源電壓測量電路
------進(jìn)線濾波器,將干擾限制在 EN 61800-3 規(guī)定的 C3 類的限制范圍內(nèi)(僅裝機(jī)裝柜型)
3.有源型電源:可控整流/回饋的解決方案,用于高動態(tài)性和高穩(wěn)定性要求的驅(qū)動系統(tǒng)
---四象限運(yùn)行,可向電網(wǎng)回饋能量
---直流母線電壓恒定,適合于高動態(tài)響應(yīng)的應(yīng)用
---運(yùn)行可靠性高,有一定耐受電網(wǎng)電壓跌落能力
---包含組件:
------ALM:IGBT模塊 + 直流母線電容組
------AIM:進(jìn)線電抗器 + 電網(wǎng)凈化濾波器 + 進(jìn)線電源電壓測量電路 + 預(yù)充電電路(僅裝機(jī)裝柜型) + 進(jìn)線濾波器,將干擾限制在 EN 61800-3 規(guī)定的C3類的限制范圍內(nèi)(僅裝機(jī)裝柜型)
---結(jié)構(gòu)緊湊的逆變器
---運(yùn)行安靜 / 噪聲水平 67 - 73 dB
---高效的功率部件保護(hù)
---功率范圍:
------1.6 – 3000 kW @ 3AC 380 - 480 V
------55 – 4500 kW @ 3AC 500 - 690 V
相關(guān)文檔:
產(chǎn)品樣本:S120運(yùn)動控制系統(tǒng) PM21.en
產(chǎn)品樣本:S120變頻調(diào)速裝置和變頻調(diào)速柜 D21.3
設(shè)備手冊:S120書本型功率部件
設(shè)備手冊:S120裝機(jī)裝柜型功率單元
設(shè)備手冊:S120 AC驅(qū)動
SINAMICS S120的控制單元用于控制整個(gè)驅(qū)動系統(tǒng),包括功率模塊、電源模塊和電機(jī)模塊等,它可以連接豐富的選件:通訊擴(kuò)展板、操作面板、端子擴(kuò)展模塊、編碼器模塊等,用于控制功能的擴(kuò)展。
CU320-2 DP/CU320-2 PN:用于多軸應(yīng)用的控制單元
CU310-2 DP/CU310-2 PN:用于單軸應(yīng)用的控制單元
---高級操作面板 AOP30
---基本操作面板 BOP20
---TB30:擴(kuò)展4 x DI、4 x DO、2 x AI、2 x AO
---CBC10:CAN總線通訊
---CBE20:ProfiNET通訊
---TM31:擴(kuò)展8 x DI、4 x DIO、2 x AI、2 x AO、2 x 繼電器輸出、1 x 溫度傳感器輸入
---TM15:擴(kuò)展24 x DIO
---TM41:擴(kuò)展4 x DI、4 x DIO、1 x AI、TTL編碼器
---TM54F:安全控制端子擴(kuò)展
---TM120:溫度傳感器輸入擴(kuò)展
---SMC 10 旋轉(zhuǎn)變壓器適配模塊
---SMC 20 絕對值編碼器適配模塊
---SMC 30 增量式編碼器適配模塊
---SMC 40 EnDat 2.2 編碼器適配模塊
電壓測量模塊VSM10
DRIVE-CLiQ Hub 模塊DMC20
相關(guān)文檔:
設(shè)備手冊:S120控制單元和擴(kuò)展系統(tǒng)組件
SINAMICS S120的控制單元必須配合CF來使用,CF卡內(nèi)帶有S120的固件和參數(shù)設(shè)置,固件版本可以通過訂貨號中的兩位體現(xiàn)出來,目前最新的固件版本為V4.6。
當(dāng)需要性能擴(kuò)展以及擴(kuò)展集成安全功能時(shí),需要單獨(dú)訂購授權(quán),并在CF卡的訂貨號中體現(xiàn)出來,詳情見視頻《S120產(chǎn)品簡介——功率與控制部分》
功率單元、控制單元和CF卡為SINAMICS S120驅(qū)動系統(tǒng)必須的三個(gè)部分,關(guān)于它們的詳細(xì)介紹,請參見以下視頻《S120產(chǎn)品簡介——功率與控制部分》
除了必需的功率部分和控制部分,SINAMICS S120傳動系統(tǒng)還需要選配系統(tǒng)元件,以保證傳動裝置和電機(jī)的正常運(yùn)行,同時(shí)減小傳動裝置對電源的影響。它們包括:
---進(jìn)線電抗器
------用于基本整流裝置 uk = 2%
------用于回饋整流裝置 uk = 4%
------平滑輸入電流
------減少變頻器對電網(wǎng)電能質(zhì)量的影響和干擾
---進(jìn)線濾波器
------與進(jìn)線電抗器一起工作,當(dāng)變頻器運(yùn)行于民用環(huán)境時(shí),將變頻器工作時(shí)產(chǎn)生的無線干擾限制在 EN 61800-3 規(guī)定的 C2 類的范圍內(nèi)
------只適用于中性點(diǎn)接地系統(tǒng)( TN或TT電網(wǎng))
---制動單元制動電阻
------僅在公共直流母線高于設(shè)定閾值時(shí)開始工作
------通過制動電阻消耗再生制動能量
------自動運(yùn)行,無需控制回路
------電容模塊:增加直流母線電容值以補(bǔ)償瞬間失電
------控制電源模塊:通過公共直流母線或外部電源(3AC 380-480 V)產(chǎn)生 24V 輸出
---輸出電抗器
------電機(jī)電纜長度大于 300 / 450 米 ( 屏蔽 / 非屏蔽 ) 時(shí)需要加裝
------減小電機(jī)電纜的容性漏電流
------與電機(jī)電纜等效電容共同作用,減小了輸出側(cè)的電壓上升率
---帶VPL的dv/dt濾波器
------限制輸出側(cè)電壓上升率: du/dt < 500 V/µs
------限制輸出側(cè)的線電壓尖峰值
------使變頻器能夠驅(qū)動沒有絕緣強(qiáng)化的電機(jī)
---正弦波濾波器
------一階 LC 低通濾波器,使得電機(jī)線電壓近似正弦波
------減小電機(jī)噪聲S7-200和S7-300進(jìn)行MPI通信
S7-200 PLC與S7-300 PLC之間采用MPI通訊方式時(shí),S7-200 PLC中不需要編寫任何與通訊有關(guān)的程序,只需要將要交換的數(shù)據(jù)整理到一個(gè)連續(xù)的V 存儲區(qū)當(dāng)中即可,而S7-300 PLC中需要在組織塊OB1(或是定時(shí)中斷組織塊OB35)當(dāng)中調(diào)用系統(tǒng)功能X_GET(SFC67)和X_PUT(SFC68),以實(shí)現(xiàn)S7-200 PLC與S7-300 PLC之間的通訊。調(diào)用SFC67和SFC68時(shí)VAR_ADDR參數(shù)填寫S7-200的數(shù)據(jù)地址區(qū),由于S7-200的數(shù)據(jù)區(qū)為v區(qū),這里需填寫 P#DB1.DBX×× BYTE n 對應(yīng)的就是S7200 V存儲區(qū)當(dāng)中VB××到VB(××+n)的數(shù)據(jù)區(qū)。例如交換的數(shù)據(jù)存在S7-200中VB50到VB59這10個(gè)字節(jié)當(dāng)中,VAR_ADDR參數(shù)應(yīng)為 P#DB1.DBX50.0 BYTE 10.
首先根據(jù)S7-300的硬件配置,在STEP7當(dāng)中組態(tài)S7-300站并且下載,注意S7-200和S7-300出廠默認(rèn)的MPI地址都是2,所以必須修 改其中一個(gè)PLC的站地址,例子程序當(dāng)中將S7-300 MPI地址設(shè)定為2,S7-200地址設(shè)定3,另外要分別將S7-300和S7-200的通訊速率設(shè)定一致,可設(shè)為9.6K,19.2K,187.5K三 種波特率,例子程序當(dāng)中選用了19.2K的速率。
S7-200 PLC修改MPI地址可以參考下圖:
圖1 S7-200 設(shè)置MPI地址
S7-300 PLC修改MPI地址可以參考下圖:
圖2 S7-300 設(shè)置MPI地址
例子程序在OB1當(dāng)中調(diào)用數(shù)據(jù)讀寫功能塊:SFC67和SFC68,如下圖:
圖3 程序編寫
分別在STEP7 MicroWin32 和STEP7當(dāng)中監(jiān)視S7-200和S7-300 PLC當(dāng)中的數(shù)據(jù),數(shù)據(jù)監(jiān)視界面如下:
圖4 S7-200監(jiān)控結(jié)果
圖5 S7-300監(jiān)控結(jié)果
通過CP5611,STEP7 MicroWin32, Set PG/PC Interface可以讀取S7200和S7300的站地址,如下圖:
圖6 CP5611診斷結(jié)果(站地址0為進(jìn)行編程的計(jì)算機(jī))
圖7 使用STEP7 MicroWin32診斷結(jié)果
2.S7-200和S7-300進(jìn)行PROFIBUS通信
S7-300與S7-200通過EM277進(jìn)行 PROFIBUS DP通訊,需要在STEP7中進(jìn)行S7-300站組態(tài),在S7-200系統(tǒng)中不需要對通訊進(jìn)行組態(tài)和編程,只需要將要進(jìn)行通訊的數(shù)據(jù)整理存放在V 存儲區(qū),并且S7-300組態(tài)EM277從站時(shí)設(shè)置正確的地址即可。
插入一個(gè)S7-300的站:
圖8 S7-300組態(tài)
選中STEP7的硬件組態(tài)窗口中的菜單 Option® Install new GSD(GSD 文件下載:113652)
導(dǎo)入SIEM089D.GSD文件,安裝EM277從站配置文件,如下圖:
圖9 安裝GSD
在SIMATIC文件夾中有EM277的GSD文件:
圖10 安裝GSD
導(dǎo)入GSD文件后,在右側(cè)的設(shè)備選擇列表中找到EM277從站,PROFIBUS DP®Additional Field Devices®PLC®SIMATIC®EM277,并且根據(jù)通訊字節(jié)數(shù),選擇一種配置,本例選擇8字節(jié)入/8字節(jié)出的方式,如下圖:
圖11 通信區(qū)域組態(tài)
根據(jù)EM277上的撥位開關(guān)設(shè)定以上EM277從站的站地址。
圖12組態(tài)DP通信地址
組態(tài)完系統(tǒng)的硬件配置后,將編譯下載到S7-300的PLC當(dāng)中。S7-300的硬件下載完成后,將EM277的撥位開關(guān)撥到與以上硬件組 態(tài)的設(shè)定值一致,在S7-200中編寫程序?qū)⑦M(jìn)行交換的數(shù)據(jù)存放在VB0-VB15,對應(yīng)S7-300的PQB0-PQB7和PIB0-PIB7,打開 STEP7中的變量表和STEP7 MicroWin32的狀態(tài)表進(jìn)行監(jiān)控,它們的數(shù)據(jù)交換結(jié)果如下圖:
圖13 通信數(shù)據(jù)監(jiān)控
圖14 通信數(shù)據(jù)監(jiān)控
注意:VB0-VB7是S7-300寫到S7-200的數(shù)據(jù),VB8-VB15是S7-300從S7-200讀取的值。EM277上撥位開 關(guān)的位置一定要和S7-300中組態(tài)的地址值一致。如果使用的S7-200通信區(qū)域不從VB0開始,則需要設(shè)置地址偏移,在S7-300硬件組態(tài)中雙擊 EM277,修改數(shù)值0為實(shí)際使用的數(shù)值即可,如下圖所示:
圖15 地址區(qū)域偏移設(shè)置
3.S7-200和S7-300進(jìn)行以太網(wǎng)通信
可以把S7-200的以太網(wǎng)模塊CP243-1配置為CLIENT,使用STEP 7 Micro/WIN32中的向?qū)нM(jìn)行通信的配置即可。在命令菜單中選擇工具--> 以太網(wǎng)向?qū)А?
圖16 打開以太網(wǎng)向?qū)?
第一步是對以太網(wǎng)通信的描述.點(diǎn)擊下一步開始以太網(wǎng)配置。
圖17 向?qū)Ы榻B
在此處選擇模塊的位置,在線的情況下,您也可以用讀取模塊按鈕搜尋在線的CP243-1模塊。點(diǎn)擊下一步;
圖18 讀取模塊
在此處填寫IP地址和子網(wǎng)掩碼。點(diǎn)擊下一步;
圖19 地址設(shè)置
需要填寫模塊的連接數(shù)目,如只和CP343-1通信則在此處填寫1,點(diǎn)擊下一步。
圖20 模塊占用地址設(shè)置
選擇此為客戶機(jī)連接,遠(yuǎn)程屬性TSAP (Transport Service Access Point)填寫為03.02,輸入343-1的IP地址.,點(diǎn)擊數(shù)據(jù)傳輸按鈕進(jìn)入數(shù)據(jù)交換的定義。
圖21 連接設(shè)置
點(diǎn)擊新傳輸按鈕進(jìn)入設(shè)置:選擇是讀取數(shù)據(jù)還是寫入數(shù)據(jù)。填寫通訊數(shù)據(jù)的字節(jié)個(gè)數(shù),填寫發(fā)送數(shù)據(jù)區(qū)和接收數(shù)據(jù)區(qū)的起始地址,本例中為從S7-300的MB200開始讀取8個(gè)字節(jié)到vb1000開始的8個(gè)字節(jié)的區(qū)域中。
點(diǎn)擊確認(rèn)按鈕:
圖22 數(shù)據(jù)區(qū)域設(shè)置
選擇CRC校驗(yàn),使用缺省的時(shí)間間隔30秒,點(diǎn)擊下一步按鈕。
圖23 使用CRC
填寫模塊所占用的V存儲區(qū)的起始地址。你也可以通過Suggest Address按鈕來獲得系統(tǒng)建議的V存儲區(qū)的起始地址, 點(diǎn)擊下一步按鈕。
圖24 配置存儲區(qū)
完成以太網(wǎng)向?qū)渲煤笮枰诔绦蛑姓{(diào)用以太網(wǎng)向?qū)傻腅THx_CTRL和ETH0_XFR, 然后,將整個(gè)項(xiàng)目下載到作CLIENT的S7-200 CPU上。
圖25 程序編寫
西門子在 Micro/WIN V4.0 SP5 中正式推出 Modbus RTU 主站協(xié)議庫(西門子標(biāo)準(zhǔn)庫指令)。
圖 1. 西門子標(biāo)準(zhǔn)指令庫(Micro/WIN V4.0 SP5)
使用 Modbus RTU 主站指令庫,可以讀寫 Modbus RTU 從站的數(shù)字量、模擬量 I/O 以及保持寄存器。
要使用 Modbus RTU 主站指令庫,須遵循下列步驟:
1. 調(diào)用 Modbus RTU 主站初始化和控制子程序
使用 SM0.0 調(diào)用 MBUS_CTRL 完成主站的初始化,并啟動其功能控制:
圖 2. 用 SM0.0 調(diào)用 Modbus RTU 主站初始化與控制子程序
各參數(shù)意義如下:
a. | EN | 使能: | 必須保證每一掃描周期都被使能(使用 SM0.0) |
---|---|---|---|
b. | Mode | 模式: | 為 1 時(shí),使能 Modbus 協(xié)議功能;為 0 時(shí)恢復(fù)為系統(tǒng) PPI 協(xié)議 |
c. | Baud | 波特率: | 支持的通訊波特率為1200,2400,4800,9600,19200,38400,57600,115200。 |
d. | Parity | 校驗(yàn): | 校驗(yàn)方式選擇 |
0=無校驗(yàn) | |||
1=奇較驗(yàn) | |||
2=偶較驗(yàn) | |||
e. | Timeout | 超時(shí): | 主站等待從站響應(yīng)的時(shí)間,以毫秒為單位,典型的設(shè)置值為 1000 毫秒(1 秒),允許設(shè)置的范圍為 1 - 32767。 |
注意: 這個(gè)值必須設(shè)置足夠大以保證從站有時(shí)間響應(yīng)。 | |||
f. | Done | 完成位: | 初始化完成,此位會自動置1??梢杂迷撐粏?MBUS_MSG 讀寫操作(見例程) |
g. | Error | 初始化錯(cuò)誤代碼(只有在 Done 位為1時(shí)有效): | |
0= 無錯(cuò)誤 | |||
1= 校驗(yàn)選擇非法 | |||
2= 波特率選擇非法 | |||
3= 模式選擇非法 |
2. 調(diào)用 Modbus RTU 主站讀寫子程序MBUS_MSG,發(fā)送一個(gè)Modbus 請求;
圖 3. 調(diào)用Modbus RTU 主站讀寫子程序
各參數(shù)意義如下:
a. | EN | 使能: | 同一時(shí)刻只能有一個(gè)讀寫功能(即 MBUS_MSG)使能 |
---|---|---|---|
注意:建議每一個(gè)讀寫功能(即 MBUS_MSG)都用上一個(gè) MBUS_MSG 指令的 Done 完成位來激活,以保證所有讀寫指令循環(huán)進(jìn)行(見例程)。 | |||
b. | First | 讀寫請求位: | 每一個(gè)新的讀寫請求必須使用脈沖觸發(fā) |
c. | Slave | 從站地址: | 可選擇的范圍 1 - 247 |
d. | RW | 從站地址: | 0 = 讀, 1 = 寫 |
注意: | |||
1. 開關(guān)量輸出和保持寄存器支持讀和寫功能 | |||
2. 開關(guān)量輸入和模擬量輸入只支持讀功能 | |||
e. | Addr | 讀寫從站的數(shù)據(jù)地址: | |
選擇讀寫的數(shù)據(jù)類型 | |||
00001 至 0xxxx - 開關(guān)量輸出 | |||
10001 至 1xxxx - 開關(guān)量輸入 | |||
30001 至 3xxxx - 模擬量輸入 | |||
40001 至 4xxxx - 保持寄存器 | |||
f. | Count | 數(shù)據(jù)個(gè)數(shù) | 通訊的數(shù)據(jù)個(gè)數(shù)(位或字的個(gè)數(shù)) |
注意: Modbus主站可讀/寫的最大數(shù)據(jù)量為120個(gè)字(是指每一個(gè) MBUS_MSG 指令) | |||
g. | DataPtr | 數(shù)據(jù)指針: | 1. 如果是讀指令,讀回的數(shù)據(jù)放到這個(gè)數(shù)據(jù)區(qū)中 |
2. 如果是寫指令,要寫出的數(shù)據(jù)放到這個(gè)數(shù)據(jù)區(qū)中 | |||
h. | Done | 完成位 | 讀寫功能完成位 |
i. | Error | 錯(cuò)誤代碼: | 只有在 Done 位為1時(shí),錯(cuò)誤代碼才有效 |
0 = 無錯(cuò)誤 | |||
1 = 響應(yīng)校驗(yàn)錯(cuò)誤 | |||
2 = 未用 | |||
3 = 接收超時(shí)(從站無響應(yīng)) | |||
4 = 請求參數(shù)錯(cuò)誤(slave address, Modbus address, count, RW) | |||
5 = Modbus/自由口未使能 | |||
6 = Modbus正在忙于其它請求 | |||
7 = 響應(yīng)錯(cuò)誤(響應(yīng)不是請求的操作) | |||
8 = 響應(yīng)CRC校驗(yàn)和錯(cuò)誤 | |||
- | |||
101 = 從站不支持請求的功能 | |||
102 = 從站不支持?jǐn)?shù)據(jù)地址 | |||
103 = 從站不支持此種數(shù)據(jù)類型 | |||
104 = 從站設(shè)備故障 | |||
105 = 從站接受了信息,但是響應(yīng)被延遲 | |||
106 = 從站忙,拒絕了該信息 | |||
107 = 從站拒絕了信息 | |||
108 = 從站存儲器奇偶錯(cuò)誤 |
3. 在 CPU 的 V 數(shù)據(jù)區(qū)中為庫指令分配存儲區(qū)(Library Memory)
Modbus Master 指令庫需要一個(gè)284個(gè)字節(jié)的全局 V 存儲區(qū)。
此為西門子正式推出的標(biāo)準(zhǔn)庫指令說明資料。
在 Modbus RTU Master 協(xié)議和 PPI 協(xié)議之間切換:Modbus RTU Master 協(xié)議指令庫使通信口工作在自由口模式下,此時(shí)不能與 Micro/WIN 軟件通信。要在切換回 PPI 協(xié)議,可以:
Modbus RTU Master 協(xié)議庫的 MBUS_CTRL 指令不需要很長的執(zhí)行時(shí)間。MBUS_需要 1.11 ms 用于初始化,在后續(xù)的每個(gè)掃描周期中只占用 0.41 ms。
調(diào)用 MBUS_MSG 子程序會加長處理時(shí)間。大部分時(shí)間都用于 CRC 校驗(yàn)的計(jì)算。每讀、寫一個(gè)字的數(shù)據(jù)就需要 1.85 ms 掃描時(shí)間。數(shù)據(jù)最多的情況下(讀、寫 120 字的數(shù)據(jù)),掃描時(shí)間大概會擴(kuò)增加 222 ms。讀操作的時(shí)間主要消耗在接收數(shù)據(jù)上;寫操作的時(shí)間主要消耗在發(fā)送數(shù)據(jù)上。
通常 Modbus 地址由 5 位數(shù)字組成,包括起始的數(shù)據(jù)類型代號,以及后面的偏移地址。Modbus Master 協(xié)議庫把標(biāo)準(zhǔn)的 Modbus 地址映射為所謂 Modbus 功能號,讀寫從站的數(shù)據(jù)。Modbus Master 協(xié)議庫支持如下地址:
為了支持上述 Modbus 地址的讀寫,Modbus Master 協(xié)議庫需要從站支持下列功能:
表 1. 需要從站支持的功能
Modbus 地址 | 讀/寫 | Modbus 從站須支持的功能 |
---|---|---|
00001 - 09999 數(shù)字量輸出 |
讀 | 功能 1 |
寫 |
功能 5:寫單輸出點(diǎn) 功能 15:寫多輸出點(diǎn) |
|
10001 - 19999 數(shù)字量輸入 |
讀 | 功能 2 |
寫 | - | |
30001 - 39999 |
讀 | 功能 4 |
寫 | - | |
40001 - 49999 保持寄存器 |
讀 | 功能 3 |
寫 |
功能 6:寫單寄存器單元 功能 16:寫多寄存器單元 |
S7-200 通過 Modbus Master 和 Slave 協(xié)議庫通信時(shí),Modbus 地址和 S7-200 內(nèi)存儲區(qū)地址的 映射關(guān)系都類似。
Modbus 保持寄存器地址映射舉例:
Modbus 數(shù)字量地址映射舉例:
位地址(0xxxx 和 1xxxx)數(shù)據(jù)總是以字節(jié)為單位打包讀寫。第一個(gè)字節(jié)中的最低有效位對應(yīng) Modbus 地址的起始地址。如下圖所示:
圖 4. 數(shù)字量地址映射舉例
為了更好地理解 Modbus 主站的編程,可參考下面的例程。
例子程序1: 多個(gè)MBUS_MSG指令輪詢執(zhí)行,
Modbus RTU 主站變址方式輪詢訪問應(yīng)用例程
注意:此指令庫/程序的作者和擁有者對于該軟件的功能性和兼容性不負(fù)任何責(zé)任。使用該軟件的風(fēng)險(xiǎn)完全由用戶自行承擔(dān)。由于它是免費(fèi)的,所以不提供任何擔(dān)保,錯(cuò)誤糾正和熱線支持,用戶不必為 此聯(lián)系西門子技術(shù)支持與服務(wù)部門。
Modbus RTU 主站庫對 CPU 的版本是否有要求,為什么編譯例子程序時(shí),會遇到 4 個(gè)錯(cuò)誤?
Modbus RTU 主站庫對 CPU 的版本確實(shí)有要求,CPU 的版本必須為 2.00 或者 2.01(即訂貨號為6ES721*-***23-0BA*),1.22 版本之前(包括 1.22 版本)的 S7-200 CPU 不支持。
Modbus 指令庫啟動后,如何通過同一個(gè)通信端口進(jìn)行 CPU 監(jiān)控?
Modbus 指令庫使用的是 CPU 的自由口通信功能,工作在自由口模式下的通訊口不能使用 Micro/WIN 的 PPI 編程通信監(jiān)控。如果通信口都已經(jīng)被占用,可以考慮:
如何理解 Modbus 地址與功能碼的區(qū)別?
Modbus 地址與 Modbus 的功能碼是兩個(gè)層次的概念。
根據(jù) Modbus 通信協(xié)議,Modbus 數(shù)據(jù)的地址使用 0xxxx、1xxxx、3xxxx 和 4xxxx 的形式,分別表示數(shù)字量輸出、數(shù)字量輸入、模擬量輸入等數(shù)據(jù)地址。在使用 S7-200 的指令庫時(shí),Modbus 數(shù)據(jù)地址與 S7-200 的 I/O 和數(shù)據(jù)存儲區(qū)地址間有特定的對應(yīng)關(guān)系。
有些設(shè)備表明它支持 Modbus RTU 通信協(xié)議,但也詳細(xì)提供了讀寫數(shù)據(jù)的詳細(xì)通信幀格式,其中包括如何指定 Modbus 站的地址,需要讀寫數(shù)據(jù)類型、長度等等。數(shù)據(jù)幀有特定字節(jié)指出此指令讀寫的數(shù)據(jù)類型和地址,此字節(jié)的數(shù)據(jù)內(nèi)容即所謂"功能碼",如功能 1 指定讀取單個(gè)/多個(gè)數(shù)字量輸出點(diǎn)的值。
支持 Modbus 協(xié)議的設(shè)備或軟件,使用時(shí)用戶直接設(shè)置或看到的應(yīng)當(dāng)是 Modbus 數(shù)據(jù)地址。Modbus 地址所訪問的數(shù)據(jù),是通過各種"功能"讀寫而來。功能碼是 Modbus 地址的底層。如果 Modbus 通信的一方提供的所謂 Modbus 協(xié)議只有功能碼,則需要注意了解此功能號與 Modbus 地址間的對應(yīng)關(guān)系。
如何訪問大于 9999 的保持寄存器地址?
通常 Modbus 協(xié)議的保持寄存器地址范圍在 40001 - 49999 之間。對于多數(shù)應(yīng)用來說已經(jīng)夠了。但有些 Modbus 從站把地址映射到保持寄存器區(qū)的地址超過 9999 的部分。
Modbus Master 協(xié)議庫支持超過 9999 的保持寄存器地址。地址范圍為 400001 - 465536。只需在調(diào)用 MBUS_MSG 子程序時(shí)給 Addr 參數(shù)賦相應(yīng)的值即可,如 416768。
Modubs Master 擴(kuò)展地址模式僅支持保持寄存器區(qū),不支持其他地址類型。
S7-200 作為 Modbus 主站方接收上來的數(shù)據(jù)格式與第三方設(shè)備不一樣怎么辦?
西門子PLC數(shù)據(jù)的存儲格式為高位低存方式。舉例:VD200中包含VW200和VW202,其中VW202是低字,VW200是高字。若第三方設(shè)備與西門子數(shù)據(jù)存儲格式不同,是低位低存的方式,那么通信上來的數(shù)據(jù)就會存在錯(cuò)誤,需要進(jìn)行轉(zhuǎn)換才能使用。編程的方式比較多樣,針對雙字中高低字的交換可以使用SWAP(字交換)指令,若是字節(jié)交換可以考慮循環(huán)移位指令。
S7-200 是否支持如 Modbus TCP 等其它協(xié)議?
不支持。S7-200自身的通信端口或其通信擴(kuò)展模塊均不支持 Modbus TCP、CANopen、DeviceNet 以及 BACnet 通信協(xié)議。
為什么 S7-200 作 Modbus 主站時(shí) MBUS_MSG 指令報(bào)6號錯(cuò)誤?
引起6號錯(cuò)誤主要有兩方面的原因:1.多個(gè) MBUS_MSG 指令同時(shí)使能執(zhí)行;2. Modbus庫存儲區(qū)中分配的建議地址區(qū)與編程中已使用的V存儲區(qū)有重疊。
2Modbus RTU從站
S7-200 CPU上的通信口Port0可以支持Modbus RTU協(xié)議,成為Modbus RTU從站。此功能是通過S7-200的自由口通信模式實(shí)現(xiàn),因此可以通過無線數(shù)據(jù)電臺等慢速通信設(shè)備傳輸。
詳情請參考《S7-200系統(tǒng)手冊》之相關(guān)章節(jié)。
要實(shí)現(xiàn)Modbus RTU通信,需要STEP 7-Micro/WIN32 V3.2以上版本的編程軟件,而且須安裝STEP 7-Micro/WIN32 V3.2 Instruction Library(指令庫)。Modbus RTU功能是通過指令庫中預(yù)先編好的程序功能塊實(shí)現(xiàn)的。
Modbus RTU從站指令庫只支持CPU上的通信0口(Port0)。
檢查Micro/WIN的軟件版本,應(yīng)當(dāng)是STEP 7-Micro/WIN V3.2以上版本。
檢查Micro/WIN的指令樹中是否存在Modbus RTU從站指令庫(圖1),庫中應(yīng)當(dāng)包括MBUS_INIT和MBUS_SLAVE兩個(gè)子程序。如果沒有,須安裝Micro/WIN32 V3.2的Instruction Library(指令庫)軟件包;
圖1. 指令樹中的庫指令
編程時(shí)使用SM0.1調(diào)用子程序MBUS_INIT進(jìn)行初始化,使用SM0.0調(diào)用MBUS_SLAVE,并指定相應(yīng)參數(shù)。關(guān)于參數(shù)的詳細(xì)說明,可在子程序的局部變量表中找到;
圖2. 調(diào)用Modbus RTU通信指令庫
圖中參數(shù)意義如下:
錯(cuò)誤代碼 | 描述 |
---|---|
0 | 無錯(cuò)誤 |
1 | 存儲區(qū)范圍錯(cuò)誤 |
2 | 非法波特率或校驗(yàn) |
3 | 非法從站地址 |
4 | Modbus 參數(shù)的非法值 |
5 | 保持寄存器與Modbus從站符號地址重復(fù) |
6 | 接收校驗(yàn)錯(cuò)誤 |
7 | 接收CRC錯(cuò)誤 |
8 | 非法功能請求/不支持的功能 |
9 | 請求中有非法存儲區(qū)地址 |
10 | 從站功能未使能 |
在CPU的V數(shù)據(jù)區(qū)中分配庫指令數(shù)據(jù)區(qū)(Library Memory);
如有必要,使用主站軟件測試。
注意:由子程序參數(shù)HoldStart和MaxHold指定的保持寄存器區(qū),是在S7-200 CPU的V數(shù)據(jù)存儲區(qū)中分配,此數(shù)據(jù)區(qū)不能和庫指令數(shù)據(jù)區(qū)有任何重疊,否則在運(yùn)行時(shí)會產(chǎn)生錯(cuò)誤,不能正常通信。注意Modbus 中的保持寄存器區(qū)按"字"尋址,即MaxHold規(guī)定的是VW而不是VB的個(gè)數(shù)。
在圖2的例子中,規(guī)定了 Modbus 保持寄存器區(qū)從 VB0 開始(HoldStart = VB0),并且保持寄存器為1000個(gè)字(MaxHold=1000),因保持寄存器以字(兩個(gè)字節(jié))為單位,實(shí)際上這個(gè)通信緩沖區(qū)占用了VB0~VB1999共2000個(gè)字節(jié)。因此分配庫指令保留數(shù)據(jù)區(qū)時(shí)至少要從VB2000開始。當(dāng)然保持區(qū)不一定要從VB0開始。
注意:你選用的CPU的V存儲區(qū)大??!CPU型號不同V數(shù)據(jù)存儲區(qū)大小不同。應(yīng)根據(jù)需要選擇Modbus保持寄存器區(qū)域的大小。
包含 Modbus RTU 從站指令庫的項(xiàng)目編譯、下載到CPU中后,在編程計(jì)算機(jī)(PG/PC)上運(yùn)行一些 Modbus 測試軟件可以檢驗(yàn)S7-200的Modbus RTU通信是否正常,這對查找故障點(diǎn)很有用。測試軟件通過計(jì)算機(jī)串口(RS-232)和PC/PPI電纜連接CPU。如果必要,須將PC/PPI電纜設(shè)置在自由口通信方式。
可到一些軟件下載網(wǎng)站尋找類似軟件,如 ModScan32 等。
Modbus地址總是以00001、30004之類的形式出現(xiàn)。S7-200內(nèi)部的數(shù)據(jù)存儲區(qū)與Modbus的0、1、3、4共4類地址的對應(yīng)關(guān)系如下:
表2. Modbus地址對應(yīng)表
Modbus地址 | S7-200數(shù)據(jù)區(qū) |
---|---|
00001 ~ 00128 | Q0.0 ~ Q15.7 |
10001 ~ 10128 | I0.0 ~ I15.7 |
30001 ~ 30032 | AIW0 ~ AIW62 |
40001 ~ 4xxxx | T ~ T + 2 * (xxxx -1) |
其中T為S7-200中的緩沖區(qū)起始地址,即 HoldStart。
如果已知S7-200中的V存儲區(qū)地址,推算Modbus地址的公式如下:
Modbus地址 = 40000 + (T/2+1) ; T為偶數(shù)
Modbus RTU 從站指令庫支持特定的 Modbus 功能。訪問使用此指令庫的主站必須遵循這個(gè)指令庫的要求。
表 3. Modbus RTU 從站功能碼
功能碼 | 主站使用相應(yīng)功能碼作用于此從站的效用 |
---|---|
1 | 讀取單個(gè)/多個(gè)線圈(離散量輸出點(diǎn))狀態(tài)。 功能 1 返回任意個(gè)數(shù)輸出點(diǎn)(Q)的 ON/OFF 狀態(tài)。 |
2 | 讀取單個(gè)/多個(gè)觸點(diǎn)(離散量輸入點(diǎn))狀態(tài)。 功能 2 返回任意個(gè)數(shù)輸入點(diǎn)(I)的 ON/OFF 狀態(tài)。 |
3 | 讀取單個(gè)/多個(gè)保持寄存器。功能 3 返回 V 存儲區(qū)的內(nèi)容。在 Modbus 協(xié)議下保持寄存器都是"字"值,在一次請求中可以讀取最多 120 個(gè)字的數(shù)據(jù)。 |
4 | 讀取單個(gè)/多個(gè)輸入寄存器。功能 4 返回 S7-200 的模擬量數(shù)據(jù)值。 |
5 | 寫單個(gè)線圈(離散量輸出點(diǎn))。功能 5 用于將離散量輸出點(diǎn)設(shè)置為指定的值。這個(gè)點(diǎn)不是被強(qiáng)制的,用戶程序可以覆蓋 Modbus 通信請求寫入的值。 |
6 | 寫單個(gè)保持寄存器。功能 6 寫一個(gè)值到 S7-200 的 V 存儲區(qū)的保持寄存器中。 |
15 | 寫多個(gè)線圈(離散量輸出點(diǎn))。功能 15 把多個(gè)離散量輸出點(diǎn)的值寫到 S7-200 的輸出映像寄存器(Q 區(qū))。輸出點(diǎn)的地址必須以字節(jié)邊界起始(如 Q0.0 或 Q2.0),并且輸出點(diǎn)的數(shù)目必須是 8 的整數(shù)倍。這是此 Modbus RTU 從站指令庫的限制。些點(diǎn)不是被強(qiáng)制的,用戶程序可以覆蓋 Modbus 通信請求寫入的值。 |
16 | 些多個(gè)保持寄存器。功能 16 寫多個(gè)值到 S7-200 的 V 存儲區(qū)的保持寄存器中。在一次請求中可以寫最多 120 個(gè)字的數(shù)據(jù)。 |
需要 STEP 7-Micro/WIN V4.0 SP3 以上版打開
Modbus 從站的網(wǎng)絡(luò)地址與 S7-200 的 CPU 網(wǎng)絡(luò)地址有什么關(guān)系?
沒有關(guān)系。支持網(wǎng)絡(luò)通信的通信協(xié)議必須有其自己的網(wǎng)絡(luò)尋址規(guī)定。 Modbus 從站的地址只是它在 Modbus 網(wǎng)絡(luò)上的地址,而通常所說的 S7-200 CPU 地址是 CPU 在西門子的 PPI 網(wǎng)絡(luò)上的站地址。S7-200 CPU 的大部分通信功能都通過 PPI 網(wǎng)絡(luò)完成,例如編程、網(wǎng)絡(luò)讀寫通信等。
如何理解 Modbus 地址與功能碼的區(qū)別?
Modbus 地址與 Modbus 的功能碼是兩個(gè)層次的概念。
根據(jù) Modbus 通信協(xié)議,Modbus 數(shù)據(jù)的地址使用 00xxx、10xxx、30xxx 和 40xxx 的形式,分別表示數(shù)字量輸出、數(shù)字量輸入、模擬量輸入等數(shù)據(jù)地址。在使用 S7-200 的指令庫時(shí),Modbus 數(shù)據(jù)地址與 S7-200 的 I/O 和數(shù)據(jù)存儲區(qū)地址間有特定的對應(yīng)關(guān)系。
有些設(shè)備表明它支持 Modbus RTU 通信協(xié)議,但也詳細(xì)提供了讀寫數(shù)據(jù)的詳細(xì)通信幀格式,其中包括如何指定 Modbus 站的地址,需要讀寫數(shù)據(jù)類型、長度等等。數(shù)據(jù)幀有特定字節(jié)指出此指令讀寫的數(shù)據(jù)類型和地址,此字節(jié)的數(shù)據(jù)內(nèi)容即所謂"功能碼",如功能 1 指定讀取單個(gè)/多個(gè)數(shù)字量輸出點(diǎn)的值。
支持 Modbus 協(xié)議的設(shè)備或軟件,使用時(shí)用戶直接設(shè)置或看到的應(yīng)當(dāng)是 Modbus 數(shù)據(jù)地址。Modbus 地址所訪問的數(shù)據(jù),是通過各種"功能"讀寫而來。功能碼是 Modbus 地址的底層。如果 Modbus 通信的一方提供的所謂 Modbus 協(xié)議只有功能碼,則需要注意了解此功能號與 Modbus 地址間的對應(yīng)關(guān)系。
Modbus 指令庫啟動后,如何通過同一個(gè)通信端口進(jìn)行 CPU 監(jiān)控?
Modbus 指令庫使用的是 CPU 的自由口通信功能,工作在自由口模式下的通訊口不能使用 Micro/WIN 的 PPI 編程通信監(jiān)控。如果通信口都已經(jīng)被占用,可以考慮:
為何有些 HMI 軟件使用 Modbus RTU 讀取S7-200中的實(shí)數(shù)會出現(xiàn)錯(cuò)誤?
有些HMI軟件使用Modbus RTU通信協(xié)議時(shí),處理存儲在數(shù)據(jù)保持寄存器中的實(shí)數(shù)(浮點(diǎn)數(shù))的方式與西門子的實(shí)數(shù)保存格式不同。西門子的PLC遵循"高字節(jié)低地址、低字節(jié)高地址"的規(guī)律。
Modbus RTU的保持寄存器總是以"字(雙字節(jié))"為單位,而一個(gè)實(shí)數(shù)需要4個(gè)字節(jié)(雙字)表示。HMI軟件在處理時(shí)可能會把保持寄存器的兩個(gè)"字"互換位置,造成不能識別以西門子格式表示的實(shí)數(shù)。如果HMI軟件一方無法處理這種實(shí)數(shù),則可在S7-200 CPU中編程將存入數(shù)據(jù)緩沖區(qū)(保持寄存器區(qū))的實(shí)數(shù)的高字和低字互換。
為何有的HMI軟件用Modbus RTU可以讀取作為從站的S7-200的內(nèi)容,但不能寫入?
可能此軟件使用了Modbus功能15(寫多個(gè)離散量)或類似功能(功能 16)。S7-200從站協(xié)議遵守"以整字節(jié)地址邊界(如Q0.0、Q2.0)開始、以8的整數(shù)倍為位個(gè)數(shù)"的規(guī)約。如果HMI軟件未嚴(yán)格執(zhí)行此規(guī)律就可能發(fā)生寫入錯(cuò)誤的情況。
S7-200是否支持 Modbus ASCII 模式?
S7-200可以支持上述模式,但是沒有現(xiàn)成的指令庫,需要用戶自己編程。
項(xiàng)目編譯后為何出現(xiàn)很多錯(cuò)誤?
使用指令庫時(shí),若編譯后出現(xiàn)很多錯(cuò)誤,一般是因?yàn)槲粗付◣熘噶顢?shù)據(jù)存儲區(qū)。請參考相關(guān)條目。
S7-200 CPU的Port1是否可以支持Modbus RTU協(xié)議?
可以。用戶可以自己編程實(shí)現(xiàn)。
在S7-200的"Tips and Tricks"幫助文檔中,Tip041是Modbus RTU從站程序,用戶可以參考。
S7-200是否可以組成Modbus RTU通信網(wǎng)絡(luò)?如何組網(wǎng)?
S7-200可以組成RS-485基礎(chǔ)上的Modbus RTU網(wǎng)絡(luò)。如果通信對象是不同標(biāo)準(zhǔn)的通信口,可能還需要轉(zhuǎn)換。
參見:RS-485網(wǎng)絡(luò)組成
3STEP 7-Micro/WIN 的標(biāo)準(zhǔn)指令庫
STEP 7-Micro/WIN V4.0 以上版內(nèi)部已經(jīng)帶有新的指令庫,但在未安裝西門子 Instruction Library 軟件包的情況下,不能顯示出來使用。
要使用西門子的標(biāo)準(zhǔn)指令庫,必須先安裝西門子的指令庫軟件包 Instruction Library。安裝了 Instruction Library 之后,只要安裝的 STEP 7-Micro/WIN 版本是最新的,就能獲得相應(yīng)版本的新指令庫。安裝 Micro/WIN 的升級包(Service Pack)也會更新指令庫的版本。
用戶可以直接從下面獲得西門子 Instruction Library 軟件安裝包:
最新的 STEP 7-Micro/WIN V4.0 SP5 版本支持以下幾種西門子標(biāo)準(zhǔn)指令庫:
以上通信協(xié)議庫都是使用了S7-200 CPU的自由口通信功能。
圖1. 西門子標(biāo)準(zhǔn)庫以淺藍(lán)色圖標(biāo)表示(Micro/WIN V4.0 SP5)
從以下兩種途徑可以獲得STEP 7-Micro/WIN指令庫:
注意:
有時(shí)因?yàn)橄到y(tǒng)和軟件安裝有問題,可能在安裝完西門子標(biāo)準(zhǔn)指令庫后仍然不能看到西門子標(biāo)準(zhǔn)庫。這時(shí)可以嘗試添加標(biāo)準(zhǔn)庫。標(biāo)準(zhǔn)庫的文件存在Micro/WIN安裝目錄下的Standard Libs目錄下。
調(diào)用STEP 7 - Mciro/WIN32 V3.2 Instruction Library(指令庫)需要分配庫指令數(shù)據(jù)區(qū)(Library Memory)。庫指令數(shù)據(jù)區(qū)是相應(yīng)庫的子程序和中斷程序所要用到的變量存儲空間。
如果在編程時(shí)不分配庫指令數(shù)據(jù)區(qū),編譯時(shí)會產(chǎn)生許多相同的錯(cuò)誤(錯(cuò)誤18)。
操作步驟(以Modbus RTU庫指令為例):
在指令樹的Project(項(xiàng)目)中,以鼠標(biāo)右鍵單擊Program Block(程序塊),在彈出的快捷菜單中選擇Library Memory。如圖2所示:
圖2
在彈出的選項(xiàng)卡中設(shè)置庫指令數(shù)據(jù)區(qū),如圖2所示:
圖3.缺省情況下是從VB0開始,但因?yàn)榕cModbus的保持寄存區(qū)沖突,所以手動改為VB2000。按"Suggest Address"按鈕也可以自動分配。
可以使用Suggest Address(推薦地址)設(shè)置數(shù)據(jù)區(qū),但要注意編程軟件設(shè)置的數(shù)據(jù)區(qū)地址,只考慮到了其他一般尋址,而未考慮到諸如Modbus數(shù)據(jù)保持寄存器區(qū)等的設(shè)置。應(yīng)當(dāng)確保不與其他任何已使用的數(shù)據(jù)區(qū)重疊、沖突。不應(yīng)重復(fù)按Suggest Address按鈕,否則也會造成混亂。
在STEP 7-Micro/WIN32 V3.1中,有分配庫指令數(shù)據(jù)區(qū)時(shí)有不同的操作方法,需要在Symbol Table(符號表)中設(shè)置一個(gè)首地址。我們強(qiáng)烈建議使用當(dāng)時(shí)最新的編程版本。
注意:添加自定義指令庫,需要關(guān)閉編輯庫指令的項(xiàng)目,新建立一個(gè)項(xiàng)目。如果要添加其他來源的庫指令自然不需要如此。
第一步:在Micro/WIN的File(文件)菜單中選擇Add/Remove Libraries...(添加/刪除指令庫)命令 ;或者在指令樹的Libraries(指令庫)分支上單擊鼠標(biāo)右鍵,選擇Add/Remove Libraries...
圖4. 選擇添加/刪除指令庫命令
添加/刪除對話框中將顯示已經(jīng)在本機(jī)的Micro/WIN中集成的用戶自定義指令庫。
圖5. 已安裝的庫指令
第二步:按Add(添加)按鈕,選擇新定義的庫文件路徑。用戶自定義庫將自動添加到Micro/WIN指令樹的Libraries分支下。