西門子S7-1200與變頻器的連接
SIEMENS西門子
希殿電氣技術(shù)(上海)有限公司
聯(lián)系人:康經(jīng)理
1 S7-1200與變頻器的連接
1.1本例程的系統(tǒng)配置
本例程中用到的硬件: S7-1200(CPU 1214C)、G120 ( 控制單元CU240B-2 )、一臺(tái)裝有TIA Portal軟件的PC機(jī)、CM1241模塊、電源模塊、標(biāo)準(zhǔn)RJ45網(wǎng)線。
1.2 硬件連接
1.2.1硬件連線
本例程中的硬件間的結(jié)構(gòu)如下圖所示:

圖1-1
1.2.2 PLC與控制單元通信端口之間的連接
用電纜將CU240B-2 Modbus 通訊接口與PLC通信模塊連接起來,如下圖所示。
圖1-2
2 變頻器設(shè)置
2.1 地址設(shè)置
可以通過控制單元上的地址開關(guān),也可以通過參數(shù) P2021 或 STARTER 中“Control Unit / Communication / Field bus”頁面來確定變頻器的 Modbus-RTU 地址。
只有所有地址開關(guān)都設(shè)為“OFF”(0)時(shí),P2021 或 STARTER 中的設(shè)置才有效。否則,Modbus-RTU 地址為地址開關(guān)所設(shè)置的地址。
2.2 參數(shù)設(shè)置
除了設(shè)置地址之外,還需要對(duì)其他一些變頻器的通信參數(shù)進(jìn)行設(shè)置,才可以進(jìn)行MODBUS通信。具體需要設(shè)置的參數(shù)如表2-1所示:
表2-1
參數(shù)
|
描述
|
P0015 = 21
|
變頻器宏程序
選擇 I/O 配置
|
p2030 = 2
|
現(xiàn)場(chǎng)總線協(xié)議選擇
2: Modbus
|
p2020
|
現(xiàn)場(chǎng)總線波特率
設(shè)置范圍是 4800 bit/s … 187500 bit/s,出廠為 19200 bit/s
|
p2024
|
Modbus 計(jì)時(shí)
-
索引 0:最大從站應(yīng)答延遲:
在該時(shí)間后,從站應(yīng)答主站。
-
索引 1: 字符延時(shí):
指一個(gè) Modbus 消息幀內(nèi),單個(gè)字符之間允許的最大延遲時(shí)間。 (即 Modbus 1.5 個(gè)字節(jié)標(biāo)準(zhǔn)的處理時(shí)間)
-
索引 2: 報(bào)文延時(shí):
指 Modbus 報(bào)文之間允許的最大延時(shí)。(即 Modbus 3.5 個(gè)字節(jié)標(biāo)準(zhǔn)的處理時(shí)間)
|
p2029
|
現(xiàn)場(chǎng)總線錯(cuò)誤統(tǒng)計(jì)
指現(xiàn)場(chǎng)總線接口上接收錯(cuò)誤的統(tǒng)計(jì)、顯示
|
p2040
|
過程數(shù)據(jù)監(jiān)控時(shí)間
指沒有收到過程數(shù)據(jù)時(shí)發(fā)出報(bào)警的延時(shí)。
注: 該時(shí)間必須根據(jù)從站數(shù)量、總線波特率加以調(diào)整,出廠為 100 ms。
|
3 PLC組態(tài)和編程
3.1 創(chuàng)建項(xiàng)目
首先創(chuàng)建一個(gè)項(xiàng)目,點(diǎn)擊創(chuàng)建新項(xiàng)目,輸入名稱,路徑等信息。

圖3-1
3.2 硬件組態(tài)
按照新手上路的提示首先選擇設(shè)備和網(wǎng)絡(luò),進(jìn)行硬件組態(tài)。

圖3-2
點(diǎn)擊添加新設(shè)備,添加相應(yīng)型號(hào)的設(shè)備,修改設(shè)備名稱,選擇版本號(hào),點(diǎn)擊添加。

圖3-3
在彈出的設(shè)備與網(wǎng)絡(luò)的右側(cè)硬件目錄中,找到通信模塊-點(diǎn)到點(diǎn)-CM1241(RS485),加入CM1241通信模塊。

圖3-4
雙擊設(shè)備視圖中的RS485端口,設(shè)置端口組態(tài),本例程配置如下圖。

圖3-5
在左側(cè)的項(xiàng)目樹-設(shè)備-在線訪問-Broadcom NetXtreme。。。(本例程PC機(jī)所使用的網(wǎng)卡),雙擊更新可使用的設(shè)備,搜索到連接的設(shè)備。

圖3-6
3.3 編程
在左邊的設(shè)備中找到S7-1200/程序塊,打開主程序(Main[OB1])。在右邊的指令欄里選擇通信/通信處理器/MODBUS,添加MB_COMM_LOAD和MB_MASTER。

圖3-7
在彈出的調(diào)用選項(xiàng)中,定義一個(gè)背景數(shù)據(jù)塊。

圖3-8
使用同樣的方法,再加入一個(gè)MB_MASTER模塊,同樣定義背景數(shù)據(jù)塊。

圖3-9
分別按照?qǐng)D3-10、圖3-11設(shè)置MB_COMM_LOAD和MB_MASTER模塊。

圖3-10

圖3-11
其中,MB_COMM_LOAD與MB_MASTER指令的參數(shù)說明,請(qǐng)參考表3-1,表3-2。
表3-1 MB_COMM_LOAD指令的參數(shù)
參數(shù)
|
聲明
|
數(shù)據(jù)類型
|
存儲(chǔ)區(qū)
|
說明
|
REQ
|
Input
|
BOOL
|
I、Q、M、D、L
|
在上升沿執(zhí)行指令
|
PORT
|
Input
|
UINT
|
I、Q、M、D、L 或常量
|
通信端口的 ID:
在設(shè)備組態(tài)中插入通信模塊后,端口 ID 就會(huì)顯示在 PORT 框連接的下拉列表中。 也可以在變量表的“常量” (Constants) 選項(xiàng)卡中引用該常量。
|
BAUD
|
Input
|
UDINT
|
I、Q、M、D、L 或常量
|
波特率選擇:
300, 600, 1200, 2400, 4800, 9600, 19200, 38400, 57600, 76800, 115200
所有其它值均無效。
|
PARITY
|
Input
|
UINT
|
I、Q、M、D、L 或常量
|
奇偶校驗(yàn)選擇:
0 – 無
1 – 奇校驗(yàn)
2 – 偶校驗(yàn)
|
FLOW_CTRL
|
Input
|
UINT
|
I、Q、M、D、L 或常量
|
流控制選擇:
0 –(默認(rèn)值)無流控制
1 – 通過 RTS 實(shí)現(xiàn)的硬件流控制始終開啟(不適用于 RS485 端口)
2 - 通過 RTS 切換實(shí)現(xiàn)硬件流控制
|
RTS_ON_DLY
|
Input
|
UINT
|
I、Q、M、D、L 或常量
|
RTS 延時(shí)選擇:
0 -(默認(rèn)值)到傳送消息的第一個(gè)字符之前,激活 RTS 無延時(shí)。
1 至 65535 – 到傳送消息的第一個(gè)字符之前,“激活 RTS”以毫秒為單位的延時(shí)(不適用于 RS-485 端口)。應(yīng)用 RTS 延時(shí)必須與 FLOW_CTRL 選擇無關(guān)。
|
RTS_OFF_DLY
|
Input
|
UINT
|
I、Q、M、D、L 或常量
|
RTS 關(guān)斷延時(shí)選擇:
0 –(默認(rèn)值)傳送最后一個(gè)字符到“取消激活 RTS”之間沒有延時(shí)。
1 至 65535 – 在發(fā)送消息的最后一個(gè)字符到“取消激活 RTS”之間以毫秒為單位的延時(shí)(不適用于 RS-485 端口)。應(yīng)用 RTS 延時(shí)必須與 FLOW_CTRL 選擇無關(guān)。
|
RESP_TO
|
Input
|
UINT
|
I、Q、M、D、L 或常量
|
響應(yīng)超時(shí):
“MB_MASTER”允許等待從站響應(yīng)的時(shí)間(毫秒) 如果從站在此時(shí)間內(nèi)沒有響應(yīng),則“MB_MASTER”將重復(fù)該請(qǐng)求,或者在發(fā)送了指定數(shù)目的重試后終止請(qǐng)求并返回錯(cuò)誤。
5 ms 至 65535 ms(默認(rèn)值 = 1000 ms)。
|
MB_DB
|
Input
|
VARIANT
|
D
|
“MB_MASTER”或“MB_SLAVE”指令的背景數(shù)據(jù)塊的引用。 在程序中插入“MB_SLAVE”或“MB_MASTER”之后,數(shù)據(jù)塊標(biāo)識(shí)符會(huì)顯示在 MB_DB 框連接的下拉列表中。
|
DONE
|
Output
|
BOOL
|
I、Q、M、D、L
|
指令的執(zhí)行已完成且未出錯(cuò)。
|
ERROR
|
Output
|
BOOL
|
I、Q、M、D、L
|
錯(cuò)誤:
0 – 未檢測(cè)到錯(cuò)誤
1 – 表示檢測(cè)到錯(cuò)誤。 在參數(shù) STATUS 中輸出錯(cuò)誤代碼。
|
STATUS
|
Output
|
WORD
|
I、Q、M、D、L
|
端口組態(tài)錯(cuò)誤代碼
|
表3-2 MB_MASTER指令的參數(shù)
參數(shù)
|
聲明
|
數(shù)據(jù)類型
|
存儲(chǔ)區(qū)
|
說明
|
REQ
|
Input
|
BOOL
|
I、Q、M、D、L
|
請(qǐng)求輸入:
0 – 無請(qǐng)求
1 – 請(qǐng)求將數(shù)據(jù)發(fā)送到 Modbus 從站
|
MB_ADDR
|
Input
|
UINT
|
I、Q、M、D、L 或常量
|
Modbus RTU 站地址:
默認(rèn)地址范圍: 0 至 247
擴(kuò)展地址范圍: 0 至 65535
值“0”已預(yù)留,用于將消息廣播到所有 Modbus 從站。 只有 Modbus 功能代碼 05、06、15 和 16 支持廣播。
|
MODE
|
Input
|
USINT
|
I、Q、M、D、L 或常量
|
模式選擇: 指定請(qǐng)求類型: 讀取、寫入或診斷:
有關(guān)詳細(xì)信息,請(qǐng)參見 Modbus 功能表。
|
DATA_ADDR
|
Input
|
UDINT
|
I、Q、M、D、L 或常量
|
從站中的起始地址: 指定 Modbus 從站中將供訪問的數(shù)據(jù)的起始地址。 可在 Modbus 功能表中找到有效地址。
|
DATA_LEN
|
Input
|
UINT
|
I、Q、M、D、L 或常量
|
數(shù)據(jù)長度: 指定要在該請(qǐng)求中訪問的位數(shù)或字?jǐn)?shù)。 可在 Modbus 功能表中找到有效長度。
|
DATA_PTR
|
Input
|
VARIANT
|
M、D
|
指向 CPU 的數(shù)據(jù)塊或位存儲(chǔ)器地址,從該位置讀取數(shù)據(jù)或向其寫入數(shù)據(jù)。 對(duì)于數(shù)據(jù)塊,必須使用“標(biāo)準(zhǔn) - 與 S7-300/400 兼容”訪問類型進(jìn)行創(chuàng)建。
|
DONE
|
Output
|
BOOL
|
I、Q、M、D、L
|
0: 事務(wù)未完成
1: 事務(wù)完成,且無任何錯(cuò)誤
|
BUSY
|
Output
|
BOOL
|
I、Q、M、D、L
|
0: 當(dāng)前沒有“MB_MASTER”事務(wù)正在處理中
1: "MB_MASTER" 事務(wù)正在處理中
|
ERROR
|
Output
|
BOOL
|
I、Q、M、D、L
|
0: 無錯(cuò)誤
1: 出錯(cuò),錯(cuò)誤代碼由參數(shù) STATUS 來指示
|
STATUS
|
Output
|
WORD
|
I、Q、M、D、L
|
執(zhí)行條件代碼
|
3.4 下載
編譯,確認(rèn)無誤后,點(diǎn)擊下載。在彈出的“擴(kuò)展的下載到設(shè)備”中,選擇PG/PC接口類型,以及PG/PC接口。選擇設(shè)備,并點(diǎn)擊下載。

圖3-12
在彈出的下載預(yù)覽中,查看將要覆蓋的內(nèi)容,選擇統(tǒng)一下載,并點(diǎn)擊下載。

圖3-13
3.5 監(jiān)視
點(diǎn)擊轉(zhuǎn)到在線,并點(diǎn)擊啟動(dòng)監(jiān)視,此時(shí)即可通過PLC給變頻器進(jìn)行MODBUS通信。

圖3-14
4 MODBUS通信控制變頻器
4.1 使用MODBUS通信控制變頻器啟停
如下圖所示,打開Tag_1,使能MB_MASTER。使能完成之后,關(guān)閉Tag_1。

圖4-1
如圖4-2,將MODE改為1(即寫入數(shù)據(jù)),DATA_ADDR寫入40101(主設(shè)定值寄存器號(hào)),DATA_PTR寫入1000(給定值的寫入值)。然后REQ使用一個(gè)脈沖沿來發(fā)送給定值。此時(shí),變頻器的給定值已經(jīng)改為1000。
然后將DATA_ADDR寫入40100(控制字寄存器號(hào)),DATA_PTR寫入047E(停車),然后REQ使用一個(gè)脈沖沿來發(fā)送停車命令。再將DATA_ADDR寫入40100(控制字寄存器號(hào)),DATA_PTR寫入047F(啟動(dòng)),然后REQ使用一個(gè)脈沖沿來發(fā)送啟動(dòng)命令。

圖4-2
注意:
MB_COMM_LOAD使能完成之后,一定要將Tag_1關(guān)閉,否則MB_MASTER模塊將無法使用。
變頻器啟動(dòng)位需要一個(gè)上升沿,所以先給其停車命令,然后發(fā)送啟動(dòng)命令,利用上升沿來啟動(dòng)變頻器。
4.2 使用MODBUS通信修改和查看變頻器參數(shù)
現(xiàn)在,以參數(shù)P1120加速時(shí)間為例,對(duì)參數(shù)的修改和查看進(jìn)行講解。
首先,進(jìn)行讀參數(shù)的演示。將MODE輸入改為0(即讀參數(shù)模式),將DATA_ADDR中寫入40322(即加速時(shí)間的寄存器號(hào)),然后REQ使用脈沖沿來發(fā)送一個(gè)讀請(qǐng)求。此時(shí),可以接收到參數(shù)P1120中的數(shù)據(jù)位1000(即加速時(shí)間為10s)。

圖4-3
然后進(jìn)行寫參數(shù):將MODE輸入改為1(即寫參數(shù)模式),將DATA_ADDR中寫入40322(即加速時(shí)間的寄存器號(hào)),在DATA_PTR中寫入500,然后REQ使用脈沖沿來發(fā)送一個(gè)寫請(qǐng)求。此時(shí),已經(jīng)將500寫入了參數(shù)P1120之中,加速時(shí)間改為5s。

圖4-4
控制單元中的 Modbus 寄存器和對(duì)應(yīng)的參數(shù)如下表所示:

表4-1 Modbus 寄存器和對(duì)應(yīng)的參數(shù)
關(guān)鍵詞
G120,CU240B-2,CU240E-2,Modbus RTU
西門子S7-1200與變頻器的連接