案例:基于PROFIBUS-DP的SIMODRIVE 611U參數讀寫
PROFIBUS通信控制基礎
SIMODRIVE 611U除了具有與驅動基本應用有關的功能外,還具有強大的通信功能,驅動通信通過PROFIBUS DP協議。
PROFIBUS-DP協議屬于主/從通信,需要有PLC作為主站,驅動裝置作為從站。PROFIBUS DP協議的主要優點是通信速度快,除了基本功能之外還有一些附加功能(例如非循環通信、交叉通信),站點數更多;主要缺點是需要另外購買作為選件的通信模板(例如CBP2或PROFIBUS模板)。這里主要介紹S7 PLC與驅動裝置采用PROFIBUS DP協議進行通信。采用PROFIBUS DP協議通信時,既可以利用STEP7本身提供的功能,也可以使用TIA軟件Drive ES。現只介紹STEP7本身提供的功能。
裝有STEP7 V5.4的PC用于S7 CPU315-2DP的硬件組態與編程,通過MPI電纜與CPU315-2DP的MPI接口連接,用于硬件組態數據及程序的下載。CPU315-2DP的DP接口通過PROFIBUS電纜與SIMODRIVE 611U變頻器的上的DP接口連接,用于S7-300與變頻器的通信。
硬件組態
S7-300 PLC與611U建立通信,主站為CPU315-2DP,從站為611U,驅動安裝了PROFIBUS選件通信模板,編程裝置采用PC+STEP7 V5.4+通信設備(MPI Adapter或CP5611卡)。
裝有STEP7 V5.4的PC用于CPU315-2DP的硬件組態與編程,通過MPI電纜與CPU315-2DP的MPI接口連接,用于硬件組態數據及程序的下載。CPU315-2DP 的DP 接口通過PROFIBUS電纜與611U的DP接口連接,用于S7-300與611U的通信。
在SIMATIC Manager 中插入一新項目,名稱為Drives_611U。在項目名稱Drives_611U下插入SIMATIC 300 Station。接下來對該站進行硬件組態:從硬件組態目錄中依次插入機架、電源、CPU,設置CPU上PROFIBUS-DP接口的網絡參數(可采用默認設置,即地址2,最高地址126,波特率1.5Mbit/s,協議DP)。
在PROFIBUS(1):DP master system (1)總線上掛上611U從站。從站路徑為:PROFIBUS-DP→SIMODRIVE→SIMODRIVE 611U MC,POSMO SI/CA/CD。從站的地址設成“12”,并設置通信報文,組態結束后保存并編譯生成系統數據(system data)以及項目程序。
通信報文PPO的描述
SIMODRIVE 611U 通用控制模塊同任選的PROFIBUS-DP模塊一起,用來通過PROFIBUS-DP控制模塊將驅動連接到更高一級的自動化系統。SIMODRIVE 611U通用模塊可以在通電后識別已安裝的PROFIBUS-DP任選模塊。如果使用了任選模塊,輸入/輸出功能就要通過PROFIBUS-DP來選擇,或可作為設定點進行輸入,用于“DP從站連接611U控制板”的協議,見圖1。

圖1 用于“DP從站連接611U控制板”的協議
PROFIBUS用于主控制模塊和指定給本主控制模塊的從控制間的循環和非循環型的數據傳輸。循環型的通信:①使用處理數據進行實際值傳送的設定點。②按照標準DP的功能。對于標準的DP操作來說,在舊的循環結束后開始新的循環。③時鐘循環同步的功能性。對于時鐘循環同步的操作來說,隨著TP時鐘循環組開始新的循環。④從—從通信功能。在(從)驅動之間的快速分配數據的傳送可用從站間的通信功能來實現,不用涉及主控制模塊。
非循環型的通信:①訪問驅動參數;②使用參數化和啟動工具軟件“SimoCom U”的參數化;③使用SIMATIC操作面板(SIMATIC OP)的數據傳輸;④在符合PPOs網絡數據結構的PKW 區。循環操作的網絡數據結構在“PROFIBUS數據集”中被指定為“參數—數據—對象(PPO)”。用于循環數據操作的網絡數據結構被分為參數區域(PKW)和過程數據區域(PZD)兩個區域,兩者都可在每個報文中傳輸。
參數區域(PKW):這個報文部分被用來讀取和寫入參數,還能讀取故障。數據傳輸是任選的,并且由相應的系統配置進行定義。過程數據區域(PZD):這個區域包含控制字、設定點、狀態信息和實際值等。PPO選擇可作如下劃分:不帶參數區域及帶有參數區域,有2~16字,用于處理數據。除了PPO類型的PPO1~PPO5外,還包括整個系列的構成功能(自由組態報文)。這五種不同的PPO類型是用不同的數據長度選擇的,而數據長度是由驅動在自動化環境中要完成的任務決定的。報文的處理數據結構可選擇標準的報文,也可自由地配置報文。
讀寫PKW參數區域
對于PPO類型“1”、“2”、“5”來說,帶四個字的參數范圍也是可傳輸的。PKW有四個字長,可以用于下列任務:讀參數值/寫參數值,參數可帶下標。作業報文(主→從)用的ID參數可以從表1中獲取。所有“SIMODRIVE 611U通用”模塊參數都可用作業識別“6”、“8”、“10”讀取和寫入。

圖2 經過PROFIBUS讀取參數

表1 作業識別ID(主驅動→從驅動)
將一個作業從主控制模塊傳輸到從驅動,一直重復此作業,至少到接收到來自從控制板傳回的相關響應為止。從控制板提供響應一直到主控制模塊已形成了新作業為止。對于含有參數值的響應,從控制板總是循環地更新數值進行響應。這里說的響應包含對“請求參數值”和“請求參數值(陣列)”等所有作業的響應。
經過PROFIBUS讀取參數見圖2。如當有故障發生時,通過狀態字ZSW1.3=1知道發生了故障,但是具體發生了什么故障,必須去讀611U的故障緩沖區,并且也可把它拿來在OP中顯示。
611U的故障緩沖區為P0945:1~P0945:8,通過PROFIBUS-DP讀出來。為了連續讀寫超過4Byte的長度,需要用到SFC14/SFC15。SFC14用于讀PROFIBUS從站數據,SFC15用于將數據寫入PROFIBUS從站。按照PKW結構建立一個數據塊DB1。在OB1中編寫程序(圖3)。
將從站的數據讀入到DB1.DBX0.0 開始的八個字節(P#DB1.DBX0.0 BYTE 8)。PKE→DB1.DBW0,IND→DB1.DBW2,PWE1→DB1.DBW4 參數值的高位字,PWE2→DB1.DBW6 參數值的低位字。將DB1.DBX8.0開始的八個字節寫入從站(P#DB1.DBX8.0 BYTE 8)。DB1.DBW8→PKE,DB1.DBW10→IND,DB1.DBW12→PWE1參數值的高位字,DB1.DBW14→PWE2參數值的低位字。在變量監測表中檢測DB1.DBW0~DB1.DBW12。

圖3 在OB1中編寫程序
請求參數值:任務號AK=6,參數號PNU=945,參數下標IND=1,參數值PWE=無意義(寫參數時才有意義)。所以在DB1.DBW8中寫入W#16#63B1,945的十六進制為3B1。在DB1.DBW10中寫入“1”的下標。這時可在DB1.DBW0中讀取到W#16#43B1,“4”代表響應ID為傳送參數值,3B1代表參數號為945;在DB1.DBW2中可以讀到“1”的下標,DB1.DBW6中可以讀到135的故障代碼,查詢該故障“停滯監控響應”。也可執行寫的操作,如寫模擬量Offset correction的值。在DB1.DBW8中寫入W#16#3262,它的數據類型為Floating Point,請求寫參數任務為“3”,在DB1.DBD12中寫入100.0(用Floating Point格式),低位DB1.DBW14,代表小數點后面的值。
如果有錯誤,則可查看它的響應ID以及故障號,故障號保存在第四個字中,即DB1.DBW6。
結論
在自動化生產機械中,SIMODRIVE 611U通常應用于定位、同步等伺服性能要求較高的場合。而這種場合往往需要通過讀寫驅動的參數,才更有利于現場操作,滿足應用需求。本文描述了如何在S7-300站點中實現SIMODRIVE611U的組態以及參數讀寫操作,為現場應用提供指導。