詳細(xì)介紹
西門子CPU412-2PN通訊模塊
上海盟疆工業(yè)自動(dòng)化設(shè)備有限公司工業(yè)業(yè)務(wù)領(lǐng)域致力于為客戶提供高品質(zhì)的服務(wù),,追求客戶的滿意是我們始終如一的目標(biāo),。在中國(guó),工業(yè)業(yè)務(wù)領(lǐng)域擁有一支技術(shù)過硬,、經(jīng)驗(yàn)豐富的工程師隊(duì)伍,,為客戶提供7x24小時(shí)全天候服務(wù)。專業(yè)的服務(wù)人員和遍布全國(guó)的服務(wù)及備件網(wǎng)絡(luò)將對(duì)客戶的服務(wù)需求迅速作出響應(yīng),,將由設(shè)備故障引起的損失降低到小的程度,。
PLS指令移植
S7-200 與 S7-200 SMART 使用PLS指令控制脈沖串輸出(PTO)的SM 定義不同,不能將 S7-200 CPU 編寫的 PLS指令程序直接用于S7-200 SMART,。
PLS指令的單段管道化
如表1所示,,使用 STEP 7-Micro/Win SMART 打開S7-200 CPU 的 PLS 指令程序需修改控制字節(jié)(SM67.6)和更改周期為頻率(SMW68)。
表1. S7-200 與 S7-200 SMART 的SM 對(duì)比
Q0.0 | S7-200 | S7-200 SMART |
SM67.0 | PTO更新周期 | PTO更新頻率 |
SM67.1 | 未使用 | 未使用 |
SM67.2 | PTO更新脈沖計(jì)數(shù)值 | PTO更新脈沖計(jì)數(shù)值 |
SM67.3 | PTO時(shí)間基準(zhǔn):0=1μs,,1=1ms | 未使用 |
SM67.4 | 未使用 | 未使用 |
SM67.5 | PTO操作:0=單段,,1=多段 | PTO操作:0=單段,1=多段 |
SM67.6 | PTO/PWM模式選擇:0=PTO,,1=PWM | PTO/PWM模式選擇:0=PWM,,1=PTO |
SM67.7 | PTO啟用:0=禁止,1=啟用 | PTO啟用:0=禁止,,1=啟用 |
SMW68 | PTO周期 | PTO頻率 |
使用 STEP 7-Micro/Win SMART 打開S7-200 CPU 的 PLS 指令程序需修改控制字節(jié)(SM67.6)和更改周期為頻率(SMW68),。
例如:在 S7-200 程序里,編寫 500ms/周期(SMB67=16#8D,,SMW68=500ms),,裝載周期和脈沖的PTO 輸出程序,移植至S7-200 SMART需要修改SMB67=16#C5,,SMW68=2Hz,。
圖1. PLS指令單段PTO移植
在單段管道化期間,頻率的上限為65,535Hz,,如果需要更高的頻率(高為100,000Hz),,則必須使用多段管道化。
PLS指令的多段管道化
相對(duì)于 S7-200 多段 PTO 計(jì)算周期增量的方式,,S7-200 SMART 多段 PTO 設(shè)置更簡(jiǎn)單,,只需要定義起始、結(jié)束頻率和脈沖計(jì)數(shù)即可,,如圖2所示,。因此移植時(shí)需要重新編寫PTO多段管道化程序,。
圖2. 多段PTO操作的包絡(luò)表格式對(duì)比
對(duì)于依照周期時(shí)間(而非頻率)的S7-200項(xiàng)目移植至S7-200smart時(shí),可以使用以下公式來進(jìn)行頻率轉(zhuǎn)換:
CTFinal = CTInitial + (ΔCT * PC)
FInitial = 1 / CTInitial
FFinal = 1 / CTFinal
CTInitial | 段啟動(dòng)周期時(shí)間 (s) |
ΔCT | 段增量周期時(shí)間 (s) |
PC | 段內(nèi)脈沖數(shù)量 |
CTFinal | 段結(jié)束周期時(shí)間 (s) |
FFInitial | 段起始頻率 (Hz) |
FFinal | 段結(jié)束頻率 (Hz) |
如圖3所示,,PLS指令多段PTO移植時(shí)無論 S7-200 中定義的SMB67為16#A0(1μs/周期)還是16#A8(1ms/周期),,S7-200 SMART中都需要改為16#E0。起始,、結(jié)束頻率根據(jù)公式計(jì)算,,脈沖數(shù)不需要改變。
圖3. PLS指令多段PTO移植
計(jì)算包絡(luò)段的加速度(或減速度)和持續(xù)時(shí)間有助于確定正確的包絡(luò)表值,,可按如下公式計(jì)算 Ts 段持續(xù)時(shí)間:
ΔF = FFinal - FInitial
Ts = PC / (Fmin + (|ΔF| / 2 ) )
As = ΔF / Ts
Ts | 段持續(xù)時(shí)間 (s) |
As | 段頻率加速度 (Hz/s) |
PC | 段內(nèi)脈沖數(shù)量 |
Fmin | 段小頻率 (Hz) |
ΔF | 段增量(總變化)頻率 (Hz) |
注意:如果 Ts 段持續(xù)時(shí)間少于 500 微秒,,將導(dǎo)致 CPU 沒有足夠的時(shí)間來計(jì)算 PTO 段值。 PTO 管道下溢位(SM66.6,、SM76.6 和 SM566.6)將置為 1,,PTO 操作終止。
S7-200 SMART PTO 脈沖數(shù)測(cè)量
S7-200 SMART CPU 沒有類似 S7-200 CPU 的高速計(jì)數(shù)器模式 12 功能,。
S7-200 SMART CPU 硬件脈沖輸出接到輸入,,配置高速計(jì)數(shù)器向?qū)Р⒄{(diào)用 HSC 子程序可監(jiān)視 PTO 脈沖數(shù)量 ,。如下圖4所示:
圖4. S7-200 SMART PTO 脈沖數(shù)測(cè)量
PWM移植
S7-200 PWM向?qū)б浦仓罶7-200 SMART PWM,,移植時(shí)需要在S7-200 SMART中重新運(yùn)行PWM向?qū)Ь幊獭?/p>
PWM向?qū)б浦?/p>
S7-200 PWM 向?qū)б浦仓罶7-200 SMART PWM,移植時(shí)需要在 S7-200 SMART中 重新運(yùn)行PWM向?qū)Ь幊?,如圖1所示:
圖1. PWM向?qū)б浦?/p>
在S7-200 SMART 中重新調(diào)用向?qū)傻?PWMx_RUN 子程序,,如圖2所示:
圖2. PWMx_RUN子程序移植西門子CPU412-2PN通訊模塊
PWM 指令移植
S7-200 與 S7-200 SMART 使用PLS指令控制脈寬調(diào)制(PWM)的SM 定義不同,如表1所示,,不能將 S7-200 CPU 編寫的 PLS指令程序直接用于S7-200 SMART,。
表1.S7-200 與 S7-200 SMART 的SM 對(duì)比
Q0.0 | S7-200 | S7-200 SMART |
SM67.0 | PWM更新周期 | PWM更新周期 |
SM67.1 | PWM更新脈寬 | PWM更新脈寬 |
SM67.2 | 未使用 | 未使用 |
SM67.3 | PWM時(shí)間基準(zhǔn):0=1μs,1=1ms | PWM時(shí)間基準(zhǔn):0=1μs,,1=1ms |
SM67.4 | PWM更新:0=異步,,1=同步 | 未使用 |
SM67.5 | 未使用 | 未使用 |
SM67.6 | PTO/PWM模式選擇:0=PTO,1=PWM | PTO/PWM模式選擇:0=PWM,,1=PTO |
SM67.7 | PWM啟用:0=禁止,,1=啟用 | PWM啟用:0=禁止,1=啟用 |
S7-200 SMART 只能使用同步更新更改 PWM 波形的特性,。
使用 STEP 7 Micro/Win SMART 打開S7-200 CPU 的 PLS 指令程序需修改控制字SM67.6,,如圖3所示:
圖3. PWM 指令移植
S7-1200 和 S7-1200 之間 S7 通信
S7-1200 的 PROFINET 通信口可以做 S7 通信的服務(wù)器端或客戶端(CPU V2.0及以上版本)。S7-1200 僅支持 S7 單邊通信,,僅需在客戶端單邊組態(tài)連接和編程,,而服務(wù)器端只準(zhǔn)備好通信的數(shù)據(jù)就行。
硬件:
- CPU 1214C DC/DC/DC,,V2.0
- CPU 1214C DC/DC/DC,,V4.1
軟件:
- Step7 V13 SP1
所完成的通信任務(wù):
- S7-1200 CPU Clinet 將通訊數(shù)據(jù)區(qū) DB1 塊中的 10 個(gè)字節(jié)的數(shù)據(jù)發(fā)送到 S7-1200 CPU server 的接收數(shù)據(jù)區(qū) DB1 塊中,;
- S7-1200 CPU Clinet 將S7-1200 CPU server 發(fā)送數(shù)據(jù)區(qū) DB2 塊中的 10 個(gè)字節(jié)的數(shù)據(jù)讀到 S7-1200 CPU Clinet 的接收數(shù)據(jù)區(qū) DB2 塊中。
S7-1200之間 S7 通訊,,可以分2種情況來操作,,具體如下:
- *種情況:兩個(gè) S7-1200 在一個(gè)項(xiàng)目中操作;
- 第二種情況:兩個(gè) S7-1200 不在一個(gè)項(xiàng)目中的操作,。
一. *種情況(同一項(xiàng)目中操作)
使用 STEP 7 V13 在同一個(gè)項(xiàng)目中,,新建兩個(gè)S7-1200站點(diǎn),然后做 S7 通訊,。
1.1 使用 Step7 V13生成項(xiàng)目
使用 STEP7 V13 創(chuàng)建一個(gè)新項(xiàng)目,,并通過“添加新設(shè)備”組態(tài) S7-1200 站 client V4.1,選擇 CPU1214C DC/DC/DC V4.1(client IP:192.168.0.10),;接著組態(tài)另一個(gè)S7-1200站 server v2.0,,選擇 CPU1214C DC/DC/DC V2.0(server IP:192.168.0.12),如圖 1 所示,。
圖 1 在新項(xiàng)目中插入2個(gè) S7-1200 站點(diǎn)
1.2 網(wǎng)絡(luò)配置,,組態(tài) S7 連接
在“設(shè)備組態(tài)”中 ,選擇“網(wǎng)絡(luò)視圖”欄進(jìn)行配置網(wǎng)絡(luò),,點(diǎn)中左上角的“連接”圖標(biāo),,連接框中選擇“S7連接”,然后選中client v4.1 CPU(客戶端),,右鍵選擇“添加新的連接”,,在創(chuàng)建新連接對(duì)話框內(nèi),選擇連接對(duì)象“server v2.0 CPU”,,選擇“主動(dòng)建立連接”后建立新連接,,如圖 2 所示。
圖 2 建立 S7 連接
1.3 S7 連接及其屬性說明
在中間欄的“連接”條目中,,可以看到已經(jīng)建立的“S7_連接_1”,,如圖 3 所示。
圖 3 S7 連接
點(diǎn)中上面的連接,,在“S7_連接_1”的連接屬性中查看各參數(shù),,如圖 4 所示。
在常規(guī)中,,顯示連接雙方的設(shè)備,,IP地址。
在本地ID中:顯示通訊連接的ID 號(hào),,這里ID=W#16#100(編程使用),。
在特殊連接屬性中:可以選擇是否為主動(dòng)連接,這里client v4.1是主動(dòng)建立連接,。
在地址詳細(xì)信息中:定義通訊雙方的 TSAP 號(hào),,這里不需要修改,。
圖 4 連接的屬性
配置完網(wǎng)絡(luò)連接,雙方都編譯存盤并下載,。如果通訊連接正常,,連接在線狀態(tài),如圖 5 所示,。
圖 5 連接狀態(tài)
1.4 軟件編程
在 S7-1200 兩側(cè),,分別創(chuàng)建發(fā)送和接收數(shù)據(jù)塊 DB1 和 DB2,定義成 10 個(gè)字節(jié)的數(shù)組,,如圖 6 所示,。
圖 6 數(shù)據(jù)塊
注意: 數(shù)據(jù)塊的屬性中,需要選擇非優(yōu)化塊訪問(把默認(rèn)的勾去掉),,如圖 7 所示,。
圖 7 數(shù)據(jù)塊屬性-非優(yōu)化的塊訪問
在主動(dòng)建連接側(cè)編程(client v4.1 CPU),在OB1中,,從“Instruction” >“Communication” >“S7 Communication”下,,調(diào)用 Get、Put 通信指令,,如圖 8 所示,。
圖 8 發(fā)送接收指令調(diào)用
功能塊參數(shù)意義如下表1.
CALL “PUT” | , %DB3 | //調(diào)用 PUT,使用背景DB塊:DB3 |
REQ | :=%M0.0 | //上升沿觸發(fā) |
ID | :=W#16#100 | //連接號(hào),,要與連接配置中*,,創(chuàng)建連接時(shí)的本地連接號(hào) |
DONE | :=%M0.5 | // 為1時(shí),發(fā)送完成 |
ERROR | :=%M0.6 | // 為1時(shí),,有故障發(fā)生 |
STATUS | :=%MW10 | // 狀態(tài)代碼 |
ADDR_1 | :=P#DB1.DBX0.0 BYTE 10 | // 發(fā)送到通信伙伴數(shù)據(jù)區(qū)的地址 |
SD_1 | :=P#DB1.DBX0.0 BYTE 10 | // 本地發(fā)送數(shù)據(jù)區(qū) |
CALL “GET” | , %DB4 | //調(diào)用 GET,使用背景DB塊:DB4 |
REQ | :=%M1.0 | //上升沿觸發(fā) |
ID | :=W#16#100 | //連接號(hào),,要與連接配置中*,,創(chuàng)建連接時(shí)的本地連接號(hào) |
NDR | :=%M1.5 | //為1時(shí),接收到新數(shù)據(jù) |
ERROR | :=%M1.6 | //為1時(shí),,有故障發(fā)生 |
STATUS | :=%MW12 | //狀態(tài)代碼 |
ADDR_1 | :=P#DB2.DBX0.0 BYTE 10 | //從通信伙伴數(shù)據(jù)區(qū)讀取數(shù)據(jù)的地址 |
RD_1 | :=P#DB2.DBX0.0 BYTE 10 | //本地接收數(shù)據(jù)地址 |
表1. 功能塊參數(shù)意義
1.5 監(jiān)控結(jié)果
通過在 S7-1200 客戶機(jī)側(cè)編程進(jìn)行 S7 通訊,,實(shí)現(xiàn)兩個(gè) CPU 之間數(shù)據(jù)交換,監(jiān)控結(jié)果如圖 9 所示,。
圖 9 監(jiān)控結(jié)果
二. 第二種情況(不在同一項(xiàng)目中操作)
使用 STEP 7 V13 不在一個(gè)項(xiàng)目中,,新建兩個(gè)S7-1200站點(diǎn),然后做 S7 通訊,。
2.1 使用 Step7 V13生成項(xiàng)目
使用 STEP7 V13 創(chuàng)建一個(gè)新項(xiàng)目,,并通過“添加新設(shè)備”組態(tài) S7-1200 站 client V4.1,選擇 CPU1214C DC/DC/DC V4.1,;接著在另一個(gè)項(xiàng)目組態(tài)S7-1200站 server v2.0,,選擇 CPU1214C DC/DC/DC V2.0,。
2.2 網(wǎng)絡(luò)配置,組態(tài) S7 連接
在“設(shè)備組態(tài)”中 ,,選擇“網(wǎng)絡(luò)視圖”欄進(jìn)行配置網(wǎng)絡(luò),,點(diǎn)中左上角的“連接”圖標(biāo),連接框中選擇“S7連接”,,然后選中client v4.1 CPU(客戶端),,右鍵選擇“添加新的連接”,在創(chuàng)建新連接對(duì)話框內(nèi),,選擇連接對(duì)象“未”,,如圖 10 所示。
圖 10 建立 S7 連接
2.3 S7 連接及其屬性說明
在中間欄的“連接”條目中,,可以看到已經(jīng)建立的“S7_連接_1”,,如圖 11 所示。
圖 11 S7 連接
點(diǎn)中上面的連接,,在“S7_連接_1”的連接屬性中查看各參數(shù),,如圖 12 所示。
在常規(guī)中,,顯示連接雙方的設(shè)備,,在伙伴方“站點(diǎn)”欄選擇“未知”;在“地址”欄填寫伙伴的IP地址192.168.0.12,。
在本地ID中:顯示通訊連接的ID 號(hào),,這里ID=W#16#100。
在特殊連接屬性中:建未的連接,,建連接側(cè)為主動(dòng)連接,,這里client v4.1是主動(dòng)建立連接。
在地址詳細(xì)信息中:定義伙伴側(cè)的 TSAP 號(hào)(注意:S7-1200預(yù)留給S7連接兩個(gè)TSAP地址:03.01和03.00),,這里設(shè)置伙伴的 TSAP:03.00,。
圖 12 連接的屬性及設(shè)置后連接狀態(tài)
配置完網(wǎng)絡(luò)連接,編譯存盤并下載,。如果通訊連接正常,,連接在線狀態(tài),如圖 13 所示,。
圖 13 連接狀態(tài)
2.4 軟件編程
在主動(dòng)建連接的客戶機(jī)側(cè)調(diào)用 Get,、Put 通信指令,具體使用同上一種情況,。
三,、附加說明
請(qǐng)注意,以上例子中使用的作為服務(wù)器的PLC是固件版本V2.0的S7-1200 CPU,,如果您使用固件版本為 V4.0 以上的 S7-1200 CPU 作為服務(wù)器,,則需要如下額外設(shè)置,,才能保證S7通信正常。
請(qǐng)點(diǎn)開作為S7服務(wù)器(sever)的 CPU 的設(shè)備組態(tài),,“屬性->常規(guī)->保護(hù)”里“連接機(jī)制”一項(xiàng)需要勾選“允許從遠(yuǎn)程伙伴(PLCHMIOPC...)使用 PUT/GET 通信訪問”,,如下圖所示:
圖14 通信保護(hù)設(shè)置