本文以DC/DC/DC類型的S7-1200 CPU為例進(jìn)行說明。在Portal 軟件中插入S7-1200 CPU(DC輸出類型),在“設(shè)備視圖”中配置PWM。
硬件:
① S7-1200 CPU (文檔中使用V4.4版本 S7-1215C DC/DC/DC)
② PC(帶以太網(wǎng)卡)
③ TP電纜(以太網(wǎng)電纜)
軟件:
①STEP7 V11 或更高版本 (文檔中使用V16版本)
硬件組態(tài)
1. 進(jìn)入CPU“常規(guī)”屬性,設(shè)置“脈沖發(fā)生器”。
2. 啟用脈沖發(fā)生器,可以給該脈沖發(fā)生器起一個(gè)名字,也可以不做修改使用軟件默認(rèn)設(shè)置值;可還以對(duì)該P(yáng)WM脈沖發(fā)生器添加注釋說明。
3. 參數(shù)分配:組態(tài)脈沖參數(shù),“參數(shù)分配”部分對(duì)PWM脈沖的周期單位、脈沖寬度做了定義。
a. 信號(hào)類型:選擇脈沖類型。有PWM和PTO兩種,其中PTO又分成4種,每種類型的具體含義在運(yùn)動(dòng)控制部分進(jìn)行介紹。這在里選擇PWM。
b. 時(shí)基:用來設(shè)定PWM脈沖周期的時(shí)間單位。在PWM模式下,時(shí)基單位分成:毫秒和微秒。
c. 脈寬格式:用來定義PWM脈沖的占空比檔次,分成4種:
以其中的“百分之一”舉例,表示把PWM脈沖周期分成100等分,以1/100為單位來表示一個(gè)脈沖周期中脈沖的高電平,也可以理解成1/100是PWM脈沖周期中高電平的分辨率?!扒Х种弧焙汀叭f分之一”相應(yīng)地把PWM的周期分成更小的等分,分辨率更高。
“S7模擬量格式”表示的是把PWM的周期劃分成27648等分,以1/27648為單位來表示一個(gè)脈沖周期中脈沖的高電平。因?yàn)镾7-1200 PLC的模擬量量程范圍為0~27648或-27648~27648。
d. 循環(huán)時(shí)間(僅適用于 PWM):表示PWM脈沖的周期時(shí)間,Portal 軟件中對(duì)“循環(huán)時(shí)間”限定的范圍值:1~16777215??梢酝ㄟ^選中復(fù)選框'允許在運(yùn)行時(shí)修改循環(huán)時(shí)間',在運(yùn)行時(shí)更改循環(huán)時(shí)間。
e. 初始脈沖寬度(僅適用于 PWM):表示PWM脈沖周期中的高電平的脈沖寬度,可以設(shè)定的范圍值由“脈寬格式”確定。例如,如果“脈寬格式”選擇了“萬分之一”,則“初始脈沖寬度”值可以設(shè)定的范圍值從0~10000,同理,如果“脈寬格式”選擇了“S7模擬量格式”,則“初始脈沖寬度”值可以設(shè)定的范圍值從0-27648。可通過使用 I/O 地址中組態(tài)的 Q 字地址,在運(yùn)行系統(tǒng)中更改初始脈沖持續(xù)時(shí)間值。
f. 允許在運(yùn)行時(shí)更改循環(huán)時(shí)間(僅適用于 PWM):如果選擇該選項(xiàng),則PLC在I/O地址處額外分配 Q 存儲(chǔ)器的 4 個(gè)字節(jié)。用戶可在程序處于運(yùn)行狀態(tài)時(shí),修改 PWM 信號(hào)的循環(huán)時(shí)間。
4. 硬件輸出:根據(jù)需要選擇S7-1200 PLC上的某個(gè)DO點(diǎn)作為PWM輸出。
『注意』該點(diǎn)只能是CPU上的DO點(diǎn),或是SB信號(hào)板上的DO點(diǎn)。S7-1200 SM擴(kuò)展模塊上的DO點(diǎn)不支持PWM功能。
5. I/O地址:用來設(shè)置PWM的地址和周期更新方式。
a. 起始地址:用來設(shè)定該P(yáng)WM通道地址。
b. 結(jié)束地址:由'起始地址'決定,默認(rèn)情況下,每個(gè)PWM通道僅占用一個(gè)Word的長(zhǎng)度,用于輸出脈沖的持續(xù)時(shí)間。如果選中'允許在運(yùn)行時(shí)修改循環(huán)時(shí)間' 復(fù)選框后,CPU會(huì)分配6個(gè)輸出字節(jié),其中前2個(gè)字節(jié)用于輸出'脈沖持續(xù)時(shí)間'值,后4個(gè)字節(jié)用于輸出'循環(huán)時(shí)間'值。
c. 組織塊:用來設(shè)置PWM I/O地址的更新方式是基于哪個(gè)OB塊的。用戶可以根據(jù)需要通過“新增”按鈕來添加相應(yīng)的OB塊,本例中用戶可以選擇默認(rèn)選項(xiàng)“自動(dòng)更新”。
d. 過程映像:設(shè)置PWM的I/O地址的過程映像的更新情況,這里的“PWM的I/O地址”指的是PWM周期脈沖寬度數(shù)值存放的地址。該選項(xiàng)用來設(shè)置脈沖寬度地址的更新情況。
S7-1200提供了6個(gè)過程映像分區(qū)。第一個(gè)過程映像分區(qū)“自動(dòng)更新”指定用于每個(gè)掃描周期都自動(dòng)更新的I/O,此為默認(rèn)分配;接下來的4個(gè)分區(qū)PIP1、PIP2、PIP3和PIP4可用于將I/O過程映像更新分配給不同的中斷事件?!癙IP OB伺服”是給S7-1200運(yùn)動(dòng)控制的等時(shí)同步模式使用的。
默認(rèn)情況下,Portal 軟件會(huì)將其I/O過程映像更新為“自動(dòng)更新” (Automatic update)。對(duì)于組態(tài)為“自動(dòng)更新”(Automatic update)的I/O,CPU將在每個(gè)掃描周期自動(dòng)處理模塊和過程映像之間的數(shù)據(jù)交換。
如果將I/O分配給過程映像分區(qū)PIP1~PIP4中的其中一個(gè),但未將OB分配給該分區(qū),那么CPU決不會(huì)將I/O更新至過程映像,也不會(huì)通過過程映像更新I/O。將I/O分配給未分配相應(yīng)OB的PIP,相當(dāng)于將過程映像指定為“無”(None)。在設(shè)備組態(tài)中將 I/O 分配給過程映像分區(qū),并在創(chuàng)建中斷 OB 或是編輯 OB 屬性時(shí)將過程映像分區(qū)分配給中斷事件。
用戶可以在指令執(zhí)行時(shí)立即讀取物理輸入值和立即寫入物理輸出值。無論 I/O點(diǎn)是否被組態(tài)為存儲(chǔ)到過程映像中,立即讀取功能都將訪問物理輸入的當(dāng)前狀態(tài)而不更新過程映像輸入?yún)^(qū)。立即寫入物理輸出功能將同時(shí)更新過程映像輸出區(qū)(如果相應(yīng) I/O點(diǎn)組態(tài)為存儲(chǔ)到過程映像中)和物理輸出點(diǎn)。如果想要程序不使用過程映像,直接從物理點(diǎn)立即訪問 I/O 數(shù)據(jù),則在 I/O地址后加后綴':P'。
根據(jù)上面的說明,本例中用戶可以直接選擇“自動(dòng)更新”。由于PWM的I/O地址是Q(輸出區(qū)),因此用戶可以使用QWx/QDx,也可以直接更新外設(shè)地址QWx:P/QDx:P。
軟件編程
1. 在Portal軟件中打開程序塊,進(jìn)行PWM的編程。在指令選件中的“擴(kuò)展指令”中的“脈沖”文件夾中可以找到CTRL_PWM指令??梢酝ㄟ^雙擊指令或是拖拽的方式把CTRL_PWM指令放到程序編輯區(qū)。
2. 在插入CTRL_PWM指令時(shí)會(huì)提示關(guān)聯(lián)背景數(shù)據(jù)塊,該數(shù)據(jù)塊的名稱和編號(hào)可以由用戶手動(dòng)設(shè)置,也可以選擇系統(tǒng)默認(rèn)值。
3. 配置CTRL_PWM指令參數(shù)。
①PWM:脈沖發(fā)生器的硬件ID號(hào),就是“硬件標(biāo)識(shí)符”,在上面的例子中硬件標(biāo)識(shí)符為265。硬件標(biāo)識(shí)符的選擇。
②ENABLE:PWM脈沖的使能端,為TURE時(shí)CPU發(fā)PWM脈沖,為False時(shí),不發(fā)脈沖。
③BUSY:標(biāo)識(shí)CPU是否正在發(fā)PWM脈沖。
④STATUS:PWM指令的狀態(tài)值,當(dāng)STATUS=0時(shí)表示無錯(cuò)誤,STATUS非0時(shí)表示PWM指令錯(cuò)誤,具體的錯(cuò)誤值查看幫助或是系統(tǒng)手冊(cè)。
4. 監(jiān)控程序,并在線修改PWM的脈沖寬度和循環(huán)周期。用M0.0使能CTRL_PWM指令。
實(shí)時(shí)修改PWM的脈沖寬度:需要修改QWx的數(shù)值,“x”就是用戶配置PWM硬件組態(tài)時(shí)的“I/O地址--輸出地址”。
實(shí)時(shí)修改PWM的循環(huán)周期:首先硬件組態(tài)內(nèi)選中'允許在運(yùn)行時(shí)修改循環(huán)時(shí)間'復(fù)選框,然后修改QD(x+2)的數(shù)值。
例如,啟用該選項(xiàng)后,CPU 會(huì)為 PWM1 分配六個(gè)字節(jié),并由您確定使用 QB1008 到 QB1013。下載程序并啟動(dòng) PWM 后,可以使用 QW1008 修改'脈沖持續(xù)時(shí)間',以及使用 QD1010 修改'循環(huán)時(shí)間'。
① 在Portal軟件左側(cè)項(xiàng)目樹中的“監(jiān)控與強(qiáng)制表”中插入一個(gè)新的監(jiān)控表,②在打開的空白監(jiān)控表中的“地址”列手動(dòng)輸入QW1008和QD1010,然后在“顯示格式”一列選擇“帶符號(hào)十進(jìn)制”。③點(diǎn)擊監(jiān)控按鈕,④ 可以看到QW1008的監(jiān)控值為50和QD1010的監(jiān)控值為100,該值分別是組態(tài)PWM時(shí)設(shè)置的初始脈沖寬度值和循環(huán)時(shí)間值。
用戶可以在監(jiān)控表中直接修改QW1008和QD1010的數(shù)值,來實(shí)時(shí)更改PWM的脈沖寬度和PWM的循環(huán)周期。
用戶可以根據(jù)需要進(jìn)行測(cè)試實(shí)驗(yàn)。