應用領域 | 化工 | 產地 | 德國 |
---|---|---|---|
品牌 | 西門子 |
S7-300/400PLC通過PROFINET IO或PROFIBUS DP周期性通訊方式將控制字1(CTW1)和主設定值(NSETP_B)發送至驅動器。
(1) 控制字中Bit0做電機的起、停控制。
(2) 主設定值為速度設定值,參數P2000中的值為頻率設定值和實際值的參考頻率,100% 對應4000H(十六進制),發送的高頻率(大值)為7
![]() |
參考價 | 面議 |
更新時間:2022-06-28 17:13:54瀏覽次數:422
聯系我們時請說明是化工儀器網上看到的信息,謝謝!
西門子PLC模塊6ES7531-7NF00-0AB0
上面提供了兩個 STL 示例。STL 程序員可使用組只能顯示在 STL 編輯器中的簡化
STL 指令。這是因為用作 LAD/FBD 能流輸入的 BOOL 參數不保存到 L 存儲器。
第二組編譯器生成的 STL 指令可顯示在 LAD、FBD 和 STL
編輯器中,因為程序編譯器使用 L 存儲器來保存在 LAD/FBD 中為能流輸入的 BOOL
輸入參數的狀態。
地址參數(例如,IN4 (&VB100))傳入子例程作為
DWORD(無符號雙字)值。對于調用例程中常數值前面有常數描述符的參數,必須為其常數參數類型。例如:要傳送值為 12,345
的無符號雙字常數作為參數,必須將常數參數為
DW#12345。如果參數中遺漏了對于常數的說明,則可將該常數認定為不同類型。
不對輸入或輸出參數自動執行數據類型轉換。例如,如果變量表參數的數據類型為 REAL,但在調用例程中,為該參數雙字 (DWORD)
數據類型,則子例程中的參數值將是雙字數據類型。
值傳遞到子例程后,存儲在子例程的局部存儲器中。變量表的左列顯示各傳遞參數的局部存儲器地址。調用子例程時,輸入參數值將到子例程的局部存儲器中。子例程執行完成時,從子例程的局部存儲器將輸出參數值到輸出參數地址。
數據元素大小和類型用參數的編碼表示。參數值到子例程中的局部存儲器的分配如下所述
:
● 參數值按照帶參數的調用子例程指令的順序分配給局部存儲器,起始地址是 L
0.0。
● 一至八個連續位參數值分配給從 Lx.0 到 Lx.7 的單個字節。
● 字節、字和雙字值分配給以字節為邊界的局部存儲器(LBx、LWx 或 LDx)。
在帶參數的子例程調用指令中,必須按照一定的順序排列參數,輸入參數在前面,其次是輸入/輸出參數,然后是輸出參數。
如果使用 STL 編程,則 CALL 指令的格式是:
示例:子例程和子例程返回指令
LAD | STL | ||
MAIN | 掃描時,調用子例程 0 進行初始化。 | Network 1 LD SM0.1 CALL SBR_0 | |
SBR0 | 可以在后一個程序段前使用有條件返回指令來退出子例程 。 | Network 1 LD M14.3 CRET | |
SBR0 | 如果 M14.3 接通,將跳過此網絡。 | Network 2 LD SM0.0 MOVB 10, VB0 |
示例:使用字符串參數的子例程調用
此示例根據給定輸入的狀態將不同字符串文字到地址。此字符串的地址被保存。然后,通過間接地址將字符串地址傳入子例程。子例程輸入參數的數據類型是字符串
。然后,子例程將字符串移到其它位置。
字符串文字也可傳入子例程。子例程內的字符串引用始終相同
西門子PLC模塊6ES7531-7NF00-0AB0
使用Starter / SCOUT調試
如圖9所示:在SteP7項目中生成了兩個驅動項目“SINAMICS_S120_CU320"和"SINAMICSxS120xCBE20v1",分別是驅動在PROFIBUS DP和PROFINET IO網絡上生成的。本例中PC與CBE20之間通過網線連接,用如圖9的方式既可直接打開Starter 或SCOUT 及驅動項目。
圖 9.
可通過使用"configuration"對驅動裝置進行手動配置。配置結束后編譯保存。
本例中:在Scout中選擇同樣的報文結構,并與SteP7 HW Config中定義的報文結構保持*,并單擊“Transfer to Hw Config"按鈕
圖 10.
注意:S120支持兩個周期性通訊接口IF1和IF2,分別通過CU參數P8839.0和P8839.1來定義IF1和IF2的通訊方式,在默認情況下P8839.0= P8839.1=99,就激活了這兩個接口的自動模式,如下表所示:
在這種方式下無法實現PROFIBUS DP和PROFINET IO的并行通訊,因此為了實現其并行通訊,需要按如下方式設置:
? P8839[0]=1和P8839[1]=2:PROFIBUS DP 用于同步,PROFINET IO用于周期性通訊
? P8839[0]=2和P8839[1]=1:PROFINET IO用于同步,PROFIBUS DP用于周期性通訊(本例中的設置)
兩個周期性通訊接口IF1和IF2的特性如上表所示:
注意:IF2不支持TM41,TM15,TM17,TM/TB,CU與CPU之間的通訊。
五、通過PROFIBUS DP或PROFINET IO總線來實現過程數據的傳輸
S7-300/400PLC通過PROFINET IO或PROFIBUS DP周期性通訊方式將控制字1(CTW1)和主設定值(NSETP_B)發送至驅動器。
(1) 控制字中Bit0做電機的起、??刂啤?br/>(2) 主設定值為速度設定值,參數P2000中的值為頻率設定值和實際值的參考頻率,100% 對應4000H(十六進制),發送的高頻率(大值)為7FFFH(200%)。
(3) 當組態的報文結構 PZD=2或自由報文999時,在S7-300/400 中可用“MOVE" 指令進行數據傳送;當組態的報文結構PZD >2,在S7-300/400 中需調用SFC14和SFC15系統功能塊。
? SFC14(“DPRD_DAT")用于讀驅動裝置的過程數據。
? SFC15(“DPWR_DAT")用于將過程數據寫入驅動裝置。
例子(PROFINET IO):SERVO_02 控制字、主設定值的發送及狀態字、實際頻率的讀取程序見圖11。
圖11
通過讀取Servo_02的參數r2050和P2051可以判斷數據是否傳輸成功。
圖12
例子(PROFIBUS DP):SERVO_02 "控制字、主設定值的發送及狀態字、實際頻率的讀取程序見圖13。
圖13
通過讀取Servo_02的參數r8850和P8051可以判斷數據是否傳輸成功。
圖14
注意通過通訊接口IF1和IF2可以同時實現CPU與Servo_02的數據傳輸
六、驅動器參數的讀取及寫入
1.擴展PROFIDRIVE功能(DPV1)
非周期性數據傳送模式允許:
? 交換大量的用戶數據
? 用DPV1的功能 READ 和 WRITE可以實現非周期性數據交換。傳輸數據塊的內容應遵照 PROFIdrive參數通道(DPV1)數據集DS47(非周期參數通道結構)。
2. 參數請求及參數應答的結構
參數請求包括三部分:請求標題、參數地址及參數值。
表1.參數請求格式
表2.參數應答格式
表3.參數請求及應答描述