陜西西門子S7-1200PLC模塊代理經(jīng)銷商

能對C函數(shù)進行編輯和編譯,并且能在梯形圖中對這些C函數(shù)功能塊進行調(diào)用。在C中有大量現(xiàn)成的功能函數(shù),梯形圖中避免了對這類高級語言更便于實現(xiàn)的算法的重復編程,只要在需要的地方進行調(diào)用即可,不僅大大提高了編程效率,還增強了程序的保密性。下面以信捷XC3系列PLC與V5系列變頻器之間的自由格式通信中的C函數(shù)調(diào)用為例進行說明。
1.功能要求
(1)設(shè)計信捷XC3系列PLC與V5-20P7變頻器之間的自由格式通信程序。
(2)設(shè)計如圖6.32所示的變頻器人機界面,程序能通過觸摸屏在線讀變頻器的母線電壓和寫變頻器的工作頻率。
(3)通過C程序調(diào)用對自由格式通信程序中的讀、寫指令進行CRC校驗。

圖6. 32 自由格式通信中觸摸屏人-機界面
2.PLC與觸摸屏選型及存儲分配
選擇信捷XC3-48RT-E型PLC,XC3系列PLC的RS-485通信口和RS-232的通信口2是同一個通信口,既支持Modbus協(xié)議,也支持自由通信協(xié)議。
圖6. 32中有兩個數(shù)據(jù)輸入框,其存儲分配與屬性分別如表6.5所示。根據(jù)圖6.32所示的畫面選擇信捷7英寸256色真彩觸摸屏TP760-T。
表6.5 圖6.32人-機界面中數(shù)據(jù)輸入框的存儲分配與屬性

3.梯形圖程序設(shè)計
變頻器自由格式通信采用狀態(tài)編程,其狀態(tài)梯形圖如圖6. 33所示,讀者可以結(jié)合注釋來閱讀。下面對程序設(shè)計中的算法和相關(guān)知識作如下說明。
(1)自由格式通信協(xié)議與相關(guān)指令
自由格式通信是以數(shù)據(jù)塊形式進行的數(shù)據(jù)傳送,每塊大可傳送128字節(jié),每塊可設(shè)置一個起始符和終止符,也可以不設(shè)置。XC3系列PLC與V5變頻器之間的通信接口為RS-485,異步串行,半雙工傳輸,通信之前要使雙方的通信參數(shù)設(shè)置*。
①PLC方通信參數(shù)的設(shè)置
通信口2可以進行自由格式通信,其通信參數(shù)要通過XCPPro重新設(shè)置。在聯(lián)機情況下,用菜單命令“PLC操作”|“運行PLC”,使PLC處在運行狀態(tài)。再用菜單命令“PLC操作”|“自由監(jiān)控”,打開如圖6. 34所示的“自由監(jiān)控”對話框。

圖6. 34 用自由監(jiān)控設(shè)置通信參數(shù)
在“自由監(jiān)控”對話框中,通過“添加”按鈕,加入要監(jiān)控的特殊數(shù)據(jù)寄存器(閃存),并通過雙擊輸入相應的監(jiān)控值。其中,FD8220必須輸入為255,表示自由格式通信模式;FD8221輸入為8710,表示通信數(shù)據(jù)格式為8位數(shù)據(jù)位、1位停止位、偶校驗、波特率19200bps; FD8226輸入為0,表示自由格式通信中的字符格式為無起始符和終止符、8位緩沖形式通信(寄存器的高8位是無效的,只利用低8位傳送數(shù)據(jù))。
注意,閃存特殊數(shù)據(jù)寄存器在修改數(shù)據(jù)后,需要重新上電才有效。
更方便的設(shè)置自由格式通信參數(shù)的方法是單擊工程窗中的PLC配置中的“串口”,在出現(xiàn)的“PLC1串口設(shè)置”對話框中用上述自由格式通信參數(shù)來進行設(shè)置。
②變頻器方通信參數(shù)設(shè)置
變頻器V5-20P7方通信參數(shù)設(shè)置如表6.6所示。
表6.6 變頻器V5-20P7方通信參數(shù)設(shè)置

設(shè)置是通過觸按其面板按鍵來完成的,以設(shè)置P0. 01=4來說明。變頻器上電后,觸按MENU鍵,面板上4位LED顯示器顯示“-P0-”;觸按ENTER鍵,顯示變?yōu)?/span>P0. 00,觸按“↑”鍵,顯示變?yōu)?/span>P0. 01;觸按ENTER鍵,顯示出廠設(shè)定值0,4次觸按“↑”鍵,直到顯示4,后觸按ENTER鍵確認本次設(shè)置。參照此方法把其余功能碼都設(shè)置好。表中,P3. 09 =054設(shè)置的數(shù)據(jù)格式也是8位數(shù)據(jù)位、1位停止位、偶校驗、波特率19200bps,與FD8221=8710設(shè)置的通信數(shù)據(jù)格式*。若要使設(shè)置的頻率超過50Hz,則還要對表6.6中P0. 06~P0.19進行設(shè)置,設(shè)置頻率不能超過500Hz。
③數(shù)據(jù)發(fā)送與接收指令
數(shù)據(jù)發(fā)送指令示例梯形圖如圖6. 35所示。其中,[S1·]和[S2·]分別為發(fā)送數(shù)據(jù)的首址和字符個數(shù),取值為數(shù)據(jù)寄存器或常數(shù)K;n為通信口地址,取值為K2~K3。在圖6. 35中,當M8012產(chǎn)生上升沿時,就將D0~D7中的8個字符通過通信口2發(fā)送出去。
數(shù)據(jù)接收指令示例梯形圖如圖6. 36所示。其中,[S1·]和[S2·]分別為接收數(shù)據(jù)的首址和字符個數(shù),取值為數(shù)據(jù)寄存器或常數(shù)K;n為通信口地址,取值為K2~K3。在圖6. 36中,當M8012產(chǎn)生上升沿時,就將7個字符通過通信口2接收到D3000~D3006寄存器中。

圖6. 35 發(fā)送指令示例

圖6.36 接收指令示例
④V5變頻器通信命令碼
表6.7所示為3條V5變頻器通信命令碼,在編程中必須將這3條命令以16進制機器碼的形式來表示。

表6.7 V5變頻器通信所用命令

讀母線電壓(地址為2105 H)詢問與響應命令碼格式分別如圖6.37(a)與(b)所示。寫頻率為11.11Hz(地址為2001H)詢問與回應命令碼格式是一樣的,如圖6.38所示。

圖6. 37 讀母線電壓詢問與響應命令碼格式

圖6. 38 寫頻率為11. 11Hz詢問與回應命令碼格式
(2)C函數(shù)功能塊的編寫和調(diào)用指令
①C函數(shù)功能塊
從圖6. 37和圖6.38可見,V5變頻器的讀、寫命令碼都要進行CRC校驗,分別是通過調(diào)用讀母線電壓函數(shù)和寫頻率函數(shù)來完成的。以讀母線電壓函數(shù)為例來說明,實際上它是標準的CRC-16的校驗源程序,其算法的N-S流程圖如圖6. 39所示。首先設(shè)置CRC寄存器(reg_ crc)的初值為Oxffff。i循環(huán)把讀機器碼W[0]~W[5]逐個與CRC寄存器進行異或,并把結(jié)果存入CRC寄存器。j循環(huán)把讀機器碼逐位右移,并檢查移出的低位的值,若為1,還要將CRC寄存器與多項式碼0a001相異或,結(jié)果均送回CRC寄存器。處理完后將按“低對低,高對高”的對應關(guān)系,把CRCH存入W[7]中,CRCL存入W[6]中。
按此算法可以得到讀母線電壓函數(shù)如下。

要得到寫頻率函數(shù)void W_CRC(WORD W,BIT B),只要把寫頻率命令碼替換讀母線電壓函數(shù)中的讀命令碼,即用“for(i=0,W[0] =1,W[1]=6,W[2]=020,W[3]=001;i<6;i++)”替換讀函數(shù)中的對應for語句的說明部分就可以了。這兩個C函數(shù)分別存放在R_CRC. FCB和W_CRC. FCB文件中。
②導入C函數(shù)功能塊
打開XCPPro軟件,右擊“工程”窗口中“函數(shù)功能塊”,彈出如圖6. 40所示的快捷菜單,選擇“從硬盤上導入函數(shù)功能塊文件”,在出現(xiàn)的“打開文件”對話框中把R_CRC.FCB和W_CRC. FCB兩文件都加進去。成功的標志是函數(shù)功能塊目錄下出現(xiàn)了R_CRC和W_CRC兩個文件目錄,如圖6. 40所示。如果在出現(xiàn)圖6. 40所示快捷菜單時,選擇了“添加新函數(shù)功能塊”,就要自行編輯C函數(shù)了。編輯好后,要單擊“編譯”按鈕,如果錯誤列表信息窗提示出錯,則要重新修改程序,再次進行編譯,直至編譯通過。
③調(diào)用C函數(shù)指令
調(diào)用C函數(shù)指令示例梯形圖如圖6. 41所示。其中,R_CRC就是被調(diào)用的C函數(shù)功能塊名稱,是由用戶導入或新建的;[S1·]對應C函數(shù)內(nèi)字W的起始地扯,只能為寄存器D;[S2·]對應C函數(shù)內(nèi)位B的起始地址,只能為內(nèi)部線圈M。在圖6. 41中,當M8000上電接通時,將調(diào)用C函數(shù)R_CRC,并通過D0和M0與C進行雙向的數(shù)據(jù)傳遞。注意與C語言中函數(shù)調(diào)用的區(qū)別,在C中函數(shù)參數(shù)傳遞是由實參單向傳遞給形參的。

圖6. 41 調(diào)用C函數(shù)指令示例
(3)狀態(tài)表與程序的執(zhí)行過程

自由格式通信狀態(tài)表如表6.8所示。按照圖6. 33自由格式通信梯形圖,上電后M8000接通,系統(tǒng)調(diào)用R_CRC和W_CRC函數(shù),分別獲得校驗碼。如圖6.37(a)所示讀母線電壓的機器碼存放在從D0開始的8個寄存器中,如圖6.38所示寫頻率的機器碼存放在從D1000開始的8個寄存器中。上電初始脈沖M8002接通,置狀態(tài)S0 =1,系統(tǒng)進入S0狀態(tài)。
①S0狀態(tài):當100ms時鐘脈沖M8012的上升沿來時,將D0~D7中的讀母線電壓機器碼通過通信口2發(fā)送給V5變頻器。T200延時100ms后,置狀態(tài)S1=1。
表6.8 自由格式通信狀態(tài)表

②S1狀態(tài):當M8012的上升沿來時,接收如圖6.37(b)所示V5對讀母線電壓的回應信息機器碼,并存放在D3000開始的7個寄存器中。將D3003和D3004低8位的數(shù)據(jù)合并,送D2002觸摸屏母線顯示框顯示。T201延時100ms后,置狀態(tài)S2 =1。
③S2狀態(tài):由觸摸屏輸入D4000的頻率值,經(jīng)過拆字后,D4000中的高、低8位數(shù)據(jù)分別送入D1004、D1005的低8位中。當M8012的上升沿來時,將D1000~D1007中的寫頻率機器碼通過通信口2發(fā)送給V5。注意到D1004和D1005中的數(shù)據(jù)內(nèi)容正是串口設(shè)置變頻器的頻率值。T202延時100ms后,重置狀態(tài)S0 =1,如此循環(huán)重復。
4.接線圖與在線調(diào)試
(1)系統(tǒng)各部件接線
信捷XC3-48RT-E型PLC與V5-20P7變頻器之間的自由格式通信接線如圖6.42所示。

圖6.42 信捷變頻器自由格式通信接線圖
XC3上有A和B兩個RS-485通信端子,用雙絞線分別與V5的“485+”和“485-”端子連接起來。用DVP通信電纜將PLC的通信口1與觸摸屏的PLC口連接起來,觸摸屏用PLC上的24V電源供電,PLC與變頻器都是220V市電供電。
(2)在線調(diào)試
下面簡要說明在線調(diào)試步驟。
①按照實訓1和實訓3介紹的方法繪制好圖6. 32所示人機界面,并下載到觸摸屏中。
②按照實訓1介紹的方法,用XCPPro軟件設(shè)計好圖6.33自由格式通信梯形圖(包括導入R_CRC和W_CRC兩個C函數(shù)),并下載到PLC中。

③按照圖6. 34和表6.6所示設(shè)置好PLC方和變頻器方通信參數(shù)。
④按照上面所述,給系統(tǒng)各部件接好線。
⑤給系統(tǒng)上電,在觸摸屏上出現(xiàn)圖6. 32所示的人機界面,注意觀察觸摸屏上能實時顯示變頻器的母線電壓。在觸摸屏的頻率輸入框中輸入頻率值11. 11Hz,應能觀察到變頻器也隨之顯示11. 11Hz的頻率值。
陜西西門子S7-1200PLC模塊代理經(jīng)銷商