前段時間讀一位網(wǎng)友給發(fā)來的程序,發(fā)現(xiàn)了一個使用CP進(jìn)行通訊的程序,我對CP的控制很感興趣,就查找了下相關(guān)介紹,在這里和大家分享一下.
接受CP傳出的數(shù)據(jù)
FC 12 PNIO_RECV:
程序塊 PNIO_RECV用于在 CP 的 PROFINET IO 控制器模式或 PROFINET IO 設(shè)備模式下接收數(shù)據(jù)。
1.作為PROFINET IO控制器運(yùn)行
該塊接收了來自PROFINETIO設(shè)備的過程數(shù)據(jù)(控制器輸入)以及來自指定輸入?yún)^(qū)域內(nèi)的PROFINET IO設(shè)備的IO提供者狀態(tài)(IOPS)。
2.作為PROFINET IO設(shè)備運(yùn)行
該塊接收通過PROFINETIO控制器傳送的數(shù)據(jù)(已組態(tài)的IO地址)和PROFINET IO控制器的IO提供者狀態(tài)(IOPS),并將其寫入到PROFINETIO設(shè)備的CPU上為過程輸出保留的數(shù)據(jù)區(qū)內(nèi)。
IO接口定義
CPLADDR : IN 模塊起始地址
MODE:IN
MODE | X0H:- IO控制器模式- IO設(shè)備模式(無并行操作)- | Y = 選擇IO控制器IO設(shè)備模式;X = 選擇在CHECK_IOPS中僅傳送組消息還是同時在IOPS中傳送狀態(tài)位。 |
X1H:IO設(shè)備模式(同時使用兩個模式) | ?只要CP不同時作為IO控制器和IO設(shè)備操作,就仍可繼續(xù)使用版本1.0的FC | |
0YH在IOPS中傳送狀態(tài)位。 | 當(dāng)MODE=0時,F(xiàn)C V2.0及以上版本的特性與FC V1.0版本相同 | |
8YH限制CHECK_IOPS中的組消息;IOPS中無狀態(tài)位 | 當(dāng)MODE=0和MODE = 1時,F(xiàn)C V3.0及以上版本的特性與FC V2.0版本相同 |
RECV IN_OUT
RECV | 存儲器位區(qū) | 指定地址和長度 |
數(shù)據(jù)塊區(qū) |
IO控制器模式: 長度應(yīng)與所組態(tài)的分布式IO的總長度相匹配,據(jù)此也可傳送地址間距。 長度也可以比分布式I/O的總長度短,例如,當(dāng)塊在OB中多次被調(diào)用時。然而,總長度必須至少能滿足一次調(diào)用需要。 |
|
IO設(shè)備模式: 數(shù)據(jù)結(jié)構(gòu)根據(jù)在PROFINET IO控制器鏈上為此PROFINET IO設(shè)備組態(tài)的輸出模塊的插槽的順序獲得的,并且它們的長度沒有地址間距。 |
LENINPUT
LEN | 數(shù)值 > 0用戶可在CP文檔中的性能數(shù)據(jù)中查找要傳送的輸出數(shù)據(jù)的最大總長度。 |
以字節(jié)為單位的將要傳送的數(shù)據(jù)區(qū)的長度。 無論如何組態(tài),將始終從地址0開始傳送數(shù)據(jù)。請注意,包括長度為1的IO地址"0"。 |
控制器和設(shè)備模式的最大總長度可以不同 |
IO控制器模式: 1.必須在此指定設(shè)備的最高組態(tài)地址。各個區(qū)域不會歸組在一起。 如果多次調(diào)用塊,LEN也可能比最高地址短。應(yīng)至少在一個調(diào)用中指定最高地址(比較"RECV"參數(shù))。 2.數(shù)據(jù)將按照邏輯地址的次序進(jìn)行傳送(僅用于PROFIBUS DP)。 |
|
IO設(shè)備模式: 1.按在PROFINET IO控制器鏈上為此PROFINET IO設(shè)備組態(tài)的輸入模塊的插槽的順序傳送數(shù)據(jù)。2.注意事項(xiàng): 必須確保此處編程的長度和PROFINET IO控制器的組態(tài)一致。為設(shè)備傳送包括所有間距的整個數(shù)據(jù)區(qū)長度 |
NDR OUTPUT
0: - 1:接受數(shù)據(jù) |
該參數(shù)指示是否無錯完成該作業(yè)。 |
ERROR OUTPUT
0: - 1:錯誤 |
故障代碼 |
STATUS OUTPUT狀態(tài)代碼
CHECK_IOPS | OUTPUT | 0: 所有IOPS均設(shè)置為GOOD | 指示是否需要對IOPS狀態(tài)區(qū)進(jìn)行評估的組消息。 |
1: 至少一個IOPS設(shè)置為BAD | 無論MODE參數(shù)如何,始終返回CHECK_IOPS。 |
IOPS OUTPUT
數(shù)據(jù)區(qū)的地址指向下列兩個位置之一: 1存儲器位區(qū) 2數(shù)據(jù)塊區(qū) |
IO提供者狀態(tài)每一用戶數(shù)據(jù)字節(jié)傳送一個狀態(tài)位。要求:在MODE參數(shù)中請求傳送(MODE=0或MODE=1)。 |
長度:對于最大值,請參見本手冊與設(shè)備相關(guān)的B部分的"性能數(shù)據(jù)"部分。這對控制器或設(shè)備模式有所不同 | 該參數(shù)僅在該模式下相關(guān)。長度信息取決于RECV參數(shù)中的長度(每字節(jié)一位) =(長度LEN + 7/ 8)控制器模式:地址間距也根據(jù)RECV參數(shù)進(jìn)行傳送。 |
設(shè)備模式:地址間距不傳送。該塊將啟動地址0的狀態(tài)傳送。 注意:ANY指針的最小長度為 (長度LEN + 7/8) |
ADD_INFO OUTPUT
附加診斷信息在控制器模式中: 0: 無報警 >0: 未決報警的數(shù)目 在設(shè)備模式中,參數(shù)始終= 0 |
參數(shù)擴(kuò)展注意事項(xiàng): 當(dāng)沒有在PROFINET IO控制器上組態(tài)INPUT地址時,也更新ADD_INFO參數(shù)。這種情況下,通過長度LEN > 0 (例如,LEN = 1字節(jié))調(diào)用PNIO_RECV塊。然后傳送1字節(jié)的地址間距。 |
參數(shù)擴(kuò)展可用于從下列固化程序版本起的CP: 從固化程序V2.0起的CP 343-1 (EX30) 從固化程序V2.0起的CP 343-1 LeaN (CX10) 從固化程序V1.0起的CP 343-1 Advanced (GX30) |
|
在較早的固化程序版本中,保留該參數(shù) |
例:
call fc 12 ( CPLADDR :=W#16#0100, MODE :=B#16#80, LEN :=7, IOPS :=P#DB11.DBX7.0 BYTE 1, NDR :=M 74.0, ERROR :=M 74.1, STATUS :=MW76, CHECK_IOPS :=M74.2, ADD_INFO :=MW 26, RECV :=P#DB11.DBX0.0 BYTE 7 ) |
//調(diào)用PNIO_RECV //來自硬件配置的模塊地址 //控制器模式或設(shè)備模式; //不傳送IOCS狀態(tài)位。 //數(shù)據(jù)區(qū)長度 //DB11中的每個接收數(shù)據(jù)字節(jié)對應(yīng)一個位狀態(tài) //用于返回參數(shù)NDR的地址 //用于返回參數(shù)ERROR的地址 //用于返回參數(shù)STATUS的地址 //用于返回參數(shù)CHECK_IOPS的地址 //診斷消息 //DB11中的接收數(shù)據(jù) (7個字節(jié)) |
FC11 PNIO_SEND給CP發(fā)出的數(shù)據(jù)
工作原理
程序塊 PNIO_SEND用于在 CP 的 PROFINET IO 控制器模式或 PROFINET IO 設(shè)備模式下傳送數(shù)據(jù)。
1.作為PROFINET IO控制器運(yùn)行
塊將指定輸出區(qū)的過程數(shù)據(jù)(輸出)傳送到CP以便轉(zhuǎn)發(fā)到PROFINET IO設(shè)備。塊以狀態(tài)代碼形式返回PROFINET IO設(shè)備輸出的IO使用者狀態(tài)(IOCS)。
2.作為PROFINET IO設(shè)備運(yùn)行
塊讀取PROFINETIO設(shè)備上CPU的預(yù)處理過程輸入,并將它們傳送給PROFINET IO控制器(已組態(tài)的I地址);塊還將返回作為狀態(tài)碼的PROFINET IO控制器的IO使用者狀態(tài)(IOCS)。
與FC12不同的IO只有一個:SENDIN_OUT
數(shù)據(jù)區(qū)的地址指向下列兩個位置之一: | 指定地址和長度IO控制器模式:長度應(yīng)與所組態(tài)的分布式IO的總長度相匹配,據(jù)此也可傳送地址間距。 |
1存儲器位區(qū) 2數(shù)據(jù)塊區(qū) |
長度也可以比分布式I/O的總長度短,例如,當(dāng)塊在OB中多次被調(diào)用時。然而,總長度必須至少能滿足一次調(diào)用需要。 |
IO設(shè)備模式:數(shù)據(jù)結(jié)構(gòu)根據(jù)在PROFINET IO控制器鏈上為此PROFINET IO設(shè)備組態(tài)的輸入模塊的插槽的順序獲得的,并且它們的長度沒有地址間距。注意: 1.無論如何組態(tài)地址(不管所組態(tài)的最低地址如何),塊將開始傳送地址0上的數(shù)據(jù)。 2.不允許指定I/O區(qū),因?yàn)樵贗/O可接受數(shù)據(jù)之前,必須檢查IOCS是否是GOOD。 |
原文標(biāo)題:STEP7關(guān)于PLC所帶PC的用法讀取控制塊
文章出處:【微信公眾號:機(jī)器人及PLC自動化應(yīng)用】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
責(zé)任編輯:haq
-
plc
+關(guān)注
關(guān)注
5022文章
13449瀏覽量
467329 -
PC
+關(guān)注
關(guān)注
9文章
2123瀏覽量
155147 -
控制塊
+關(guān)注
關(guān)注
0文章
5瀏覽量
6405 -
STEP7
+關(guān)注
關(guān)注
4文章
103瀏覽量
32829
原文標(biāo)題:STEP7關(guān)于PLC所帶PC的用法讀取控制塊
文章出處:【微信號:gh_a8b121171b08,微信公眾號:機(jī)器人及PLC自動化應(yīng)用】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
2CP5和2CP50系列真空/制冷壓力傳感器手冊
CP測試與FT測試有什么區(qū)別
CP測試和WAT測試有什么區(qū)別

評論