① 如何編寫PROFINET IO設備通訊塊FC11和FC12
如果您要使用 S7-300 工業乙太網模板作為 PROFINET IO 控制器或者 PROFINET IO 設備, 那麼您必須調用一下通訊功能塊在用戶程序中:
FC11 "PNIO_SEND"
FC12 "PNIO_RECV"
通訊塊 FC11 「PNIO_SEND」 和 FC12 「PNIO_RECV」 的特性:
FC11 和 FC12 是同步通訊塊。
塊被包含在 S7-300 控制器「SIMATIC_NET_CP」 庫中。
塊必須被調用在 OB1 中
功能調用結束通過 「DONE」, 「NDR」 或 「ERROR」 表示。
FC11 「 PNIO_SEND」 通訊功能塊的特性 :
作為 PROFINET IO 控制器
功能塊通過通訊處理器傳送指定輸出范圍內的過程數據 (輸出) 到 PROFINET IO 設備並且提供同樣的狀態給 PROFINET IO 設備的輸出。
作為 PROFINET IO 設備
功能塊讀取 PROFINET IO 設備 CPU 的過程映像輸入區並且傳送它們到 PROFINET IO 控制器 (被組態的輸入地址);提供同樣的狀態給 PROFINET IO 控制器。
FC12「 PNIO_RECV」 通訊功能塊的特性 ::
作為 PROFINET IO 控制器
功能塊接受 PROFINET IO 設備的過程數據(輸入) 並且提供來自於 PROFINET IO 設備的指定輸入區的狀態。
作為 PROFINET IO 設備
功能塊接受 PROFINET IO 控制器發送的數據 (被組態的輸出地址) 並把 PROFINET IO 控制器的傳送數據的狀態寫到 PROFINET IO 設備以組態好的數據區中。
組態描述:
STEP 7 項目包括以下被組態成 PROFINET IO 控制器的 S7-300 站:
CPU 319-3PN/DP
STEP 7 項目包括以下被組態成 PROFINET IO 設備的 S7-300 站:
CPU 315-2DP 和 CP343-1 Lean (6GK7 343-1CX10-0XE0)
ET 200S
接下來的輸入/輸出模塊被組態到 PROFINET IO 設備 CP343-1 Lean中:
地址是 0-15 的 16 位元組輸入模塊
地址是 16-23 的 8 位元組輸入模塊
地址是 0-15 的 16 位元組輸出模塊
地址是 16-19的 4 位元組輸出模塊
這表明輸入地址區和輸出地址區分別是 24 位元組 (0-23) 和 20 位元組 (0-19)。 輸入和輸出首地址可以不是"0".接下來的輸入/輸出模塊被組態到 ET 200S 中:
地址是 20.0-20.1 的 2 位輸出模塊
最終的地址區是:
輸入: 0-23 = 24 位元組
輸出: 0-20 = 21 位元組
用戶程序描述:
在這個例子中, 一個 CP343-1 Lean 被用作連接一個作為 PROFINET IO 設備的S7-300 站到一個 PROFINET IO 系統中。位元組 MB0 被定義成 S7-300 CPU 時鍾位。STEP 7 程序包括 OB1, FB100, DB30, DB31, DB12, FC11 and FC12.
OB1
OB1 被循環調用。 在這個OB中, FB100 (實例 DB: DB100)被調用。
FB100
FB100 被調用在 OB1 中。 在這個 FB 中,FC11 「PNIO_SEND」 和 FC12 「PNIO_RECV」 被調用。
輸入參數 MODE=0, 因為通訊處理器僅被用作 PROFINET IO 設備。如果通訊處理器被同時用作 PROFINET IO 控制器和 PROFINET IO 設備,那麼輸入參數 MODE=1。
輸入通訊功能參數 CPLADDR 是你指定的 PROFINET IO 設備的模塊地址。你從硬體組態中可以得到它,在工業乙太網通訊模塊 -> 「 地址」 標簽 (參看 圖. 06)。在這個例子中, CP343-1 Lean 模塊地址是 256dec = 100hex.。
FC11 「 PNIO_SEND」 的輸入參數 LEN 是你組態的 CP343-1 Lean (24 位元組) 的輸入地址區的長度。 這段數據長度被指定為 FC11 「PNIO_SEND」 發送數據的 LEN 參數。這段數據必須與已組態的的輸入 (24 位元組) 保持一致。
FC12 「 PNIO_RECV」 的輸入參數 LEN 是你組態的 CP343-1 Lean (20 位元組) 的輸出地址區的長度。 這段數據長度被指定為 FC12 「PNIO_RECV」 發送數據的 LEN 參數。這段數據必須與已組態的的輸出 (20位元組) 保持一致。
發送接收緩沖區 (例如 數據塊) 包含了被發送和接收的數據,長度至少要和被定義的發送和接收數據一樣長。在這個例子中,DB 包含的發送數據長度必須大於等於 24 位元組並且 DB 包含的接收數據長度必須大於等於 20 位元組。
FC11 「PNIO_SEND」 和 FC12 「PNIO_RECV」 的輸出參數 「DONE」、「NDR」、「ERROR」 和 「STATUS」是通訊功能塊的工作標示位。
如果發送任務成功完成,那麼 FC11 「PNIO_SEND」的 「DONE」將被置位。
如果接收任務成功完成 (例如:數據被接收到) ,那麼 FC12 「PNIO_RECV」的 「NDR」將被置位。
如果 FC11 「PNIO_SEND」 和 FC12 「PNIO_RECV」 由於錯誤而結束,可通過狀態字進行錯誤分析。
PROFINET IO 控制器的用戶程序描述:
在這個例子中,一個帶有集成乙太網介面的 S7-300 CPU 被用作 PROFINET IO 控制器。 位元組 MB0 被定義成 S7-300 CPU時鍾位。
STEP 7 程序包括 OB1, FB100 和 DB20。
在用戶程序中沒有必要調用通訊功能塊。可以通過裝載和傳送命令來訪問輸入/輸出區,例如,讀出輸入值和寫值到輸出。讀到的輸入值被保存到數據塊 (DB20)中。
② step 7編程時怎麼創建profinet 組件
step 7編程時怎麼創建profinet 組件
1、點擊菜單Tool後選擇Options,出現Options對話框 2、在Options對話框中選擇 3、在Gernerl頁面下按圖示選擇後,確定,如果需要保存當前正在編輯的程式,選擇YES,否則選擇No。 4、重新啟動Step7 MicroWin程序後,就是中文界面。
MW16,是一個字,16位,包括MB16,MB17,m17.2是MW16的底位元組第3位。 上圖,不知道調用的塊的具體程序,暫認為MW16的值是10,那麼二進制就是00000000 00001010 底位元組(從右邊)第3位,就是M17.2,值是0,高位元組8位是MB16,底位元組8位是MB17。
③ 西門子S7-300怎麼通過profinet從丹佛斯變頻器讀取數據,我知道怎麼進行組態的設置,但是不會寫程序
組態好了之後,你要在子站插入了輸入輸出模塊,並且組態的時候通過在線將profinet子站名關聯到丹佛斯變頻器,如果是通過PN卡通訊,那麼需要使用西門子CP庫中得CP11和CP12讀寫,如果是通過集成的PN口經行PROFInet通訊,那麼直接就使用IO就可以了,比如使用PIW或者PQW。。還有,對於使用附加出來的PN卡經行通訊時PK卡應該設置為通訊處理器的模式,而不是外部IO的模式。
④ 如何實現c#profinet編程
您好,PROFINET由PROFIBUS國際組織(PROFIBUS International,PI)推出,是新一代基於工業乙太網技術的自動化匯流排標准。作為一項戰略性的技術創新,PROFINET為自動化通信領域提 供了一個完整的網路解決方案,囊括了諸如實時乙太網、運動控制、分布式自動化、故障安全以及網路安全等當前自動化領域的熱點話題,並且,作為跨供應商的技 術,可以完全兼容工業乙太網和現有的現場匯流排(如PROFIBUS)技術,保護現有投資。
PROFINET是適用於不同需求的完整解決方案,其功能包括8個主要的模塊,依次為實時通信、分布式現場設備、運動控制、分布式自動化、網路安裝、IT標准和信息安全、故障安全和過程自動化。
PROFINET主要有兩種通信方式[1]:
(1)PROFINET IO實現控制器與分布式I/O之間的實時通信;
(2)PROFINET CBA實現分布式智能設備之間的實時通信。
從PROFINET的角度來看,PROFINET IO是在工業乙太網上實現模塊化、分布式應用的通信概念。通過PROFINET IO,分布式I/O和現場設備能夠集成到乙太網通信中。
1 PROFINET IO的基本概念
1.1 PROFINET IO的工程模型
(1)IO控制器
IO控制器[2]一般是可編程式控制制器(例如PLC),它能夠執行自動化程序。其功能相當於PROFIBUS類型1的主站。
(2)IO設備
IO設備是連接到PROFINET網路中的現場分布式I/O。
(3)IO監視器
IO監視器[2]是一種工程設備,通常為PC、HMI或可編程式控制制器,用於IO控制器和IO設備的調試和診斷,在運行期間連接IO監視器,通常只是暫時性地用於調試和故障處理。IO監視器的功能相當於PROFIBUS類型2的主站。
1個PROFINET IO系統應該包括至少1個IO控制器和1個IO設備。
⑤ 如何實現SIMOTION 與計算機的PROFINET RT通信
1.
創建一個新項目,並插入一個新的SIMOTION設備:
2.
選擇正確的產品和版本:
3.
創建網路並且分配IP地址:
4.
選擇計算機連接的SIMOTION介面以及計算機使用的網卡:
5.
在打開的硬體組態中點擊F4
進行自動排列:
6.
雙擊CBE30模塊,組態於計算機通信的IO地址,點擊「NEW」添加通信的地址:
7.
添加輸入和輸出地址,本例各為200個位元組:
8.
配置結果如下圖:
9.
生成GSD文件並導入到本機內部,用於後續組態:
2.2
硬體組態(PC
Station)
對PC
Station的硬體組態步驟如下:
1.
組態PC
Station,在PC的機架上分別添加OPC
Sever、Application、IE
General:
2.
組態IE
General
到網路中:
3.
點擊菜單「Insert」下面的「PROFINET
IO
System」,插入一個PROFINET的網路:
4.
分配網路到Application,如果需要通信的程序為OPC,則選擇OPC
Sever,本例為IO
BASE的通訊方式,所以選擇Application:
5.
拖拽導出的SIMOTION
I-Device的GSD文件到PROFINET
IO
system
(100)上:
6.
保存編譯即可。
7.
組態與SIMOTION通訊的輸入/輸出地址為512
開始,需要注意此地址,因為在後續編程中需要使用。
8.
組態計算機,分別下載計算機組態和SIMOTION組態。如下圖所示:
2.3
編寫程序
1.
在SIMOTION中編寫數據發送測試程序如下圖所示,將此程序分配至servo
task中:
2.
打開計算機的IO
base
例子程序,其存貯路徑如下:
C:\Program
Files
(x86)\Siemens\SIMATIC.NET\pnio\Examples\easy
通過編程軟體打開pnioeasy.sln即可。
3.
修改輸入和輸出的配置,本例輸入/輸出各200個位元組:
4.
修改輸入輸出數據如下圖,即從SIMOTION中讀取數據後發回給SIMOTION,同時顯示當前讀取使用的時間(SERVO
TIME
是3ms,所以乘以3):
5.
保存並且編譯運行即可。
6.
點擊字母「s」啟動應用程序
7.
通過SIMOTION可以trace到結果如下圖所示:
8.
輸入讀取到上位機後,再返回到SIMOTION需要的時間受計算機速度影響,本例使用的是西門子PG
m3:
9.
如果同時播放大尺寸的高清視頻則應用會受到影響:
10.
如果使用的是OPC方式進行數據交換,則需將PC
Station中的硬體組態修改為OPC方式
11.
可以使用西門子提供的客戶端例子程序進行測試,例子程序在下述存貯路徑中:
C:\Program
Files
(x86)\Siemens\SIMATIC.NET\opc2\samples\Custom\Sync
12.
打開例子程序後,修改OPC的條目名稱,條目名可以通過OPC
SCOUT獲取:
13.
增加兩個條目,用於通信測試:
14.
增加寫變數代碼如下:
15.
運行後即可實現OPC
客戶端通信,需要注意,具體的時間測試和變數操作需要根據實際需求改寫例子程序。
注意:
(1)PROFINET
IO功能需要SIMATIC
NET
SOFTNET授權。
(2)
使用的計算機執行的其他任務越少越好。
(3)
windows不是實時的操作系統。
(4)
本例測試的時間僅供參考,不具有廣泛意義。