這里使用s7-300使用profibus-dp和西門系440變頻器的通訊為例,其他品牌的變頻器profibus-dp通訊都是一樣的。
和變頻器的通訊需要單獨(dú)購買對應(yīng)的profibus-dp通訊模塊。
組態(tài)一個(gè)cpu(有dp功能的),建立一條profibus網(wǎng)絡(luò):
下面我們給剛添加的mm400組態(tài)i/0模塊:
這里因?yàn)槲覀冏冾l器的參數(shù)都是手動(dòng)從變頻器更改,我們就不會使用pkw,也就是說我們可以選擇前面是0pkw的選項(xiàng)。
q的第一個(gè)字地址是變頻器的命令(就是停止,正反轉(zhuǎn))
q的第二個(gè)字地址是變頻器的運(yùn)轉(zhuǎn)信息(就是運(yùn)行的頻率)
這兩個(gè)是我們常用的,第三個(gè)字到第八個(gè)字是配合修改變頻器參數(shù)使用的,我們的變頻器參數(shù)使用外部設(shè)置,暫時(shí)不使用。
i的第一個(gè)字地址是變頻器的狀態(tài)字(運(yùn)行或者停止的標(biāo)志)
i的第二個(gè)字地址是變頻器的實(shí)際頻率
具體i的對應(yīng)功能可以在變頻器上的p2051參數(shù)進(jìn)行設(shè)置,可以查m440的profibus-dp手冊,下圖有部分說明:
看完上面的對應(yīng)關(guān)系后,我們就可以控制變頻器了
pqw256內(nèi)傳送:047f是變頻器啟動(dòng)
047e是變頻器停止(也是復(fù)位變頻器)
0c7f是變頻器反轉(zhuǎn)
pqw256內(nèi)傳送變頻器的運(yùn)行頻率,特別注意,plc向變頻器內(nèi)傳送的數(shù)字是16進(jìn)制的0到4000(即十進(jìn)制的16384),對應(yīng)變頻器ohz到最大頻率(列如我們變頻器設(shè)定最大頻率是50hz,那么plc內(nèi)的0-4000就對應(yīng)變頻器的0-50hz)。
piw258是變頻器的實(shí)際運(yùn)行頻率(16進(jìn)制格式)。
關(guān)于變頻器通訊模塊地址的特別說明:
我們軟件組態(tài)的變頻器地址,一定和實(shí)際變頻器的地址相對應(yīng)。
地址的設(shè)定有兩種方法:1 通過 profibus 模板上的dip 開關(guān)設(shè)定
2 由用戶通過變頻器的參數(shù)p0918輸入地址。
特別注意:
dip 開關(guān)= 0 p0918(cb 地址)指定的地址是有效的
dip 開關(guān)≠0 dip 開關(guān)的設(shè)定值優(yōu)先,p0918 顯示dip 開關(guān)的設(shè)定值。
撥碼開關(guān)的地址使用加法計(jì)算,列如我們軟件上組態(tài)的地址是5,那么撥碼開關(guān)我們就需要把地址4和地址1撥到on上
變頻器的通訊參數(shù)設(shè)置:
p0003:3 定義參數(shù)訪問級別為專家級別
p700:6 選擇命令給定源,=6,profibus
p918:dp的通訊地址(撥碼開關(guān)是0的話從這里設(shè)置地址,撥碼開關(guān)非零的時(shí)候地址由撥碼開關(guān)決定)
p1000(0):6 設(shè)置頻率給定源,=6,profibus
特別提示:為了防止發(fā)生錯(cuò)誤到時(shí)cpu停機(jī),建議在程序內(nèi)添加ob82,ob85,ob86,ob122
ob82:診斷中斷,如果使能一個(gè)具有診斷中斷模塊的診斷功能(例如斷線、傳感器電源丟失),出現(xiàn)故障時(shí)調(diào)用ob82,如果程序中沒有創(chuàng)建ob82,cpu進(jìn)入停止模式。診斷中斷還對cpu所有內(nèi)外部故障,包括模塊前連接器拔出、硬件中斷丟失等作出響應(yīng)。
ob85:用于處理操作系統(tǒng)訪問模塊故障、更新過程映像區(qū)時(shí)i/o訪問故障、事件觸發(fā)但相應(yīng)的ob沒有下載到cpu等事件,事件出現(xiàn),cpu自動(dòng)調(diào)用ob85報(bào)錯(cuò),如果程序中沒創(chuàng)建ob85,cpu進(jìn)入停止模式。
ob86:用于處理擴(kuò)展機(jī)架(不適用于s7-300系列)、profibus-dp主站、profibus-dp或profinet i/o分布i/o系統(tǒng)中站點(diǎn)故障等事件,事件出現(xiàn),cpu自動(dòng)調(diào)用ob86報(bào)錯(cuò),如果程序中沒有創(chuàng)建,cpu進(jìn)入停止模式。
ob122處理與i/o地址訪問故障有關(guān)的事件,例如訪問一個(gè)i/o模塊時(shí),出現(xiàn)讀故障等。如果上述故障出現(xiàn),在程序中沒有創(chuàng)建ob121、ob122,cp進(jìn)入停止模式。