西門(mén)子S7-1500PLC中手動(dòng)程序編輯模板(上)
本文主要講解我們經(jīng)常遇到的手動(dòng)程序的編程思路和方法,通過(guò)這篇文章你將了解到真正的手動(dòng)程序,比我們書(shū)本上學(xué)的要復(fù)雜的多,需要考慮方方面面的因素,才能適應(yīng)生產(chǎn)現(xiàn)場(chǎng)的要求,下面我們具體看一下都有哪些?
一、西門(mén)子_部件手動(dòng)模式FB塊編輯
1、軟件配置
①軟件配置
名稱
版本
博圖
V16
2、建立FB塊
在編輯手動(dòng)程序前應(yīng)該建立手動(dòng)程序的FB塊,F(xiàn)B塊的建立內(nèi)容如下圖所示?


①FB塊的輸入接口
Input:FB塊的輸入接口,將下拉列表中的數(shù)據(jù)應(yīng)用于該FB塊所編輯的程序中。
NO:當(dāng)前部件的編號(hào),由于在設(shè)備中有多個(gè)部件,為了精準(zhǔn)的控制到每一個(gè)部件,所以對(duì)每個(gè)部件都給一個(gè)編號(hào)。
假如設(shè)備中有10個(gè)部件要進(jìn)行操控,我們對(duì)其進(jìn)行”1-10”的編號(hào)處理,其中”某部件名稱X”是第6個(gè),我們可以將”NO”的值設(shè)定為”6”。
HomePos:當(dāng)前部件的原位到位信號(hào),經(jīng)常用輸入信號(hào)”I”點(diǎn)來(lái)表示,如果該部件沒(méi)有輸入信號(hào)”I”點(diǎn),也可用其他方式來(lái)表達(dá)。
WorkPos:當(dāng)前部件的工作位到位信號(hào),經(jīng)常用輸入信號(hào)”I”點(diǎn)來(lái)表示,如果該部件沒(méi)有輸入信號(hào)”I”點(diǎn),也可用其他方式來(lái)表達(dá)。
OutMode:當(dāng)前部件的動(dòng)作方式,當(dāng)該部件需要執(zhí)行到”原位動(dòng)作”或”工作位動(dòng)作”時(shí),通過(guò)”O(jiān)utMode”的設(shè)定值來(lái)決定哪種動(dòng)作方式。
目前有5種動(dòng)作方式
1、部件如何操作都不會(huì)執(zhí)行任何動(dòng)作。(部件不執(zhí)行輸出動(dòng)作)
2、當(dāng)部件滿足某個(gè)執(zhí)行動(dòng)作的條件后,會(huì)一直執(zhí)行該動(dòng)作。(部件會(huì)一直執(zhí)行某個(gè)輸出動(dòng)作)
3、當(dāng)部件執(zhí)行動(dòng)作后,如果中途執(zhí)行動(dòng)作的條件不滿足,則會(huì)立即停止該動(dòng)作。但是當(dāng)部件的動(dòng)作執(zhí)行到位后,會(huì)一直執(zhí)行該動(dòng)作。
(部件執(zhí)行輸出動(dòng)作后,中途能夠停止;但是當(dāng)動(dòng)作到位后,部件會(huì)一直執(zhí)行該輸出動(dòng)作)
4、當(dāng)部件執(zhí)行動(dòng)作后,如果中途執(zhí)行動(dòng)作的條件不滿足,則會(huì)立即停止該動(dòng)作。(部件執(zhí)行輸出動(dòng)作后,中途能夠停止)
5、當(dāng)部件執(zhí)行動(dòng)作后,如果中途執(zhí)行動(dòng)作的條件不滿足,則會(huì)立即停止該動(dòng)作,當(dāng)部件動(dòng)作執(zhí)行到位后,會(huì)立即停止執(zhí)行中的動(dòng)作。
(部件執(zhí)行輸出動(dòng)作后,中途能夠停止,當(dāng)動(dòng)作到位后,部件會(huì)立即停止執(zhí)行該輸出動(dòng)作).
ErrorMode:當(dāng)前部件報(bào)警模式,通過(guò)”ErrorMode”的設(shè)定值來(lái)決定報(bào)警模式的選擇。
目前有5報(bào)警模式
1、部件不會(huì)出現(xiàn)任何報(bào)警.
2、部件在執(zhí)行某個(gè)動(dòng)作前,如果不滿足執(zhí)行該動(dòng)作的安全條件,則會(huì)觸發(fā)”安全互鎖”報(bào)警.
3、部件在執(zhí)行某個(gè)動(dòng)作前,如果不滿足執(zhí)行該動(dòng)作的安全條件,則會(huì)觸發(fā)”安全互鎖”報(bào)警;部件在執(zhí)行某個(gè)動(dòng)作后,如果執(zhí)行該動(dòng)作的時(shí)間超過(guò),設(shè)定的報(bào)警時(shí)間”ErrorTime”,則會(huì)觸發(fā)”動(dòng)作超時(shí)報(bào)警”。
4、部件在執(zhí)行某個(gè)動(dòng)作前,如果不滿足執(zhí)行該動(dòng)作的安全條件,則會(huì)觸發(fā)”安全互鎖”報(bào)警;
部件在執(zhí)行某個(gè)動(dòng)作后,如果執(zhí)行該動(dòng)作的時(shí)間超過(guò),設(shè)定的報(bào)警時(shí)間”ErrorTime”,則會(huì)觸發(fā)”動(dòng)作超時(shí)報(bào)警”;部件的原位到位信號(hào)和工作位到位信號(hào)同時(shí)”O(jiān)N”,則會(huì)觸發(fā)部件的”原位工作位雙ON”報(bào)警。
5、部件在執(zhí)行某個(gè)動(dòng)作前,如果不滿足執(zhí)行該動(dòng)作的安全條件,則會(huì)觸發(fā)”安全互鎖”報(bào)警;
部件在執(zhí)行某個(gè)動(dòng)作后,如果執(zhí)行該動(dòng)作的時(shí)間超過(guò),設(shè)定的報(bào)警時(shí)間”ErrorTime”,則會(huì)觸發(fā)”動(dòng)作超時(shí)報(bào)警”;
部件的原位到位信號(hào)和工作位到位信號(hào)同時(shí)”O(jiān)N”,則會(huì)觸發(fā)部件的”原位工作位雙ON”報(bào)警;部件在動(dòng)作執(zhí)行完成后,會(huì)生成一個(gè)到位狀態(tài)用來(lái)表示已到達(dá)原位或工作位,在該狀態(tài)存在期間如果丟失了到位信號(hào),則會(huì)觸發(fā)部件的”到位信號(hào)丟失”報(bào)警。
ErrorCode:當(dāng)前部件報(bào)警的起始編號(hào),根據(jù)”ErrorCode”的值,當(dāng)前的報(bào)警程序編號(hào)規(guī)律如下:?
Alarm2[ErrorCode+0].該部件的”原位動(dòng)作安全互鎖不滿足”報(bào)警
Alarm2[ErrorCode+1].該部件的”工作位動(dòng)作安全互鎖不滿足”報(bào)警
Alarm2[ErrorCode+2].該部件的”原位動(dòng)作超時(shí)”報(bào)警
Alarm2[ErrorCode+3].該部件的”工作位動(dòng)作超時(shí)”報(bào)警
Alarm2[ErrorCode+4].該部件的”原位工作位雙ON”報(bào)警
Alarm2[ErrorCode+5].該部件的”原位到位信號(hào)丟失”報(bào)警
Alarm2[ErrorCode+6].該部件的”工作位到位信號(hào)丟失”報(bào)警
假設(shè)”ErrorCode”的值為60,那么
Alarm2[60].該部件的”原位動(dòng)作安全互鎖不滿足”報(bào)警
Alarm2[61].該部件的”工作位動(dòng)作安全互鎖不滿足”報(bào)警
Alarm2[62].該部件的”原位動(dòng)作超時(shí)”報(bào)警
Alarm2[63].該部件的”工作位動(dòng)作超時(shí)”報(bào)警
Alarm2[64].該部件的”原位工作位雙ON”報(bào)警
Alarm2[65].該部件的”原位到位信號(hào)丟失”報(bào)警
Alarm2[66].該部件的”工作位到位信號(hào)丟失”報(bào)警
ErrorTime:當(dāng)前部件報(bào)警時(shí)間,當(dāng)部件執(zhí)行動(dòng)作的時(shí)間超過(guò)”ErrorTime”時(shí),該部件則會(huì)觸發(fā)”動(dòng)作超時(shí)報(bào)警”。
OPMode:當(dāng)前設(shè)備的運(yùn)行模式。
②FB塊輸出接口
Output :FB塊的輸出接口,將下拉列表中的數(shù)據(jù)應(yīng)用于該FB塊所編輯的程序中。
HomeAck:當(dāng)前部件的原位動(dòng)作輸出引腳,當(dāng)”HomeAck”O(jiān)N后則會(huì)導(dǎo)通其引腳后的線圈。
WorkAck:當(dāng)前部件的工作位動(dòng)作輸出引腳,當(dāng)”WorkAck”O(jiān)N后則會(huì)導(dǎo)通其引腳后的線圈。
Static:FB塊中運(yùn)用到的變量,將下拉列表中的數(shù)據(jù)應(yīng)用于該FB塊所編輯的程序中。
sTempBit:FB塊的數(shù)組,由10個(gè)整數(shù)類(lèi)型的緩存區(qū)構(gòu)成,每個(gè)單獨(dú)的緩存區(qū)都可以當(dāng)做做一個(gè)”D區(qū)”來(lái)使用,下拉內(nèi)容有:?

sTempNO:FB塊的數(shù)組,由10個(gè)整數(shù)類(lèi)型的緩存區(qū)構(gòu)成,每個(gè)單獨(dú)的緩存區(qū)都可以當(dāng)做做一個(gè)”D區(qū)”來(lái)使用,下拉內(nèi)容有:?

3、FB塊程序的構(gòu)建
①部件到位信號(hào)
正常情況下,每個(gè)部件都有一個(gè)”原位到位信號(hào)_HomePos”和”工作位到位信號(hào)_WorkPos”,
我們通常都會(huì)使用外部傳感器的信號(hào)傳遞”到位信號(hào)”。?

然而有些情況下,某些部件會(huì)沒(méi)有外部傳感器來(lái)傳遞”到位信號(hào)”,所以我們只能通過(guò)程序手段來(lái)表達(dá)部件已經(jīng)動(dòng)作到位。?

上圖的程序中,我們用到了”ErrorMode”中的值來(lái)判斷該部件是否有外部傳感器來(lái)傳遞”到位信號(hào)”,當(dāng)”ErrorMode”的值為”11”時(shí),我們認(rèn)為該部件沒(méi)有外部傳感器來(lái)傳遞”到位信號(hào)”,當(dāng)”ErrorMode”的值不為”11”,該部件由外部傳感器來(lái)傳遞”到位信號(hào)”。
②部件動(dòng)作模式
由于每種部件的功能不同,有的部件需要一直有動(dòng)作輸出,有的部件需要到位后保持輸出,有的部件需要隨時(shí)停止動(dòng)作輸出,這些狀況我們可以理解為部件的”動(dòng)作模式”不同,根據(jù)”部件動(dòng)作模式”的不同,我們要對(duì)部件的動(dòng)作程序進(jìn)行編輯。
這里我們可以用”O(jiān)utMode”中的”值”來(lái)表示”部件動(dòng)作模式”,以此來(lái)編輯程序。?

1、”O(jiān)utMode”值為”0”時(shí),部件不會(huì)產(chǎn)生任何動(dòng)作
2、”O(jiān)utMode”值為”1”時(shí),部件在執(zhí)行某個(gè)動(dòng)作后【"DB3100_Manual".Manual[#NO].Code】值會(huì)變?yōu)椤?”或”3”,會(huì)一直執(zhí)行這個(gè)動(dòng)作。?

3、”O(jiān)utMode”值為”2”時(shí),部件在執(zhí)行某個(gè)動(dòng)作后【"DB3100_Manual".Manual[#NO].Code】值會(huì)變?yōu)椤?”或”4”,該動(dòng)作在沒(méi)錢(qián)到位前,中途可以停止。
如果動(dòng)作執(zhí)行到位后【"DB3100_Manual".Manual[#NO].Code】值會(huì)變?yōu)椤?”或”3”。?

4、”O(jiān)utMode”值為”3”時(shí),部件在執(zhí)行某個(gè)動(dòng)作后【"DB3100_Manual".Manual[#NO].Code】值會(huì)變?yōu)椤?”或”4”,可以隨時(shí)停止執(zhí)行該動(dòng)作。?

5、”O(jiān)utMode”值為”4”時(shí),部件在執(zhí)行某個(gè)動(dòng)作后【"DB3100_Manual".Manual[#NO].Code】值會(huì)變?yōu)椤?”或”4”,如果動(dòng)作執(zhí)行到位后【"DB3100_Manual".Manual[#NO].Code】值會(huì)變?yōu)椤?”。?

下圖程序表示:【"DB3100_Manual".Manual[#NO].Code】的值在不同的情況下,該部件”動(dòng)作輸出”信號(hào)的變化。?

下圖程序表示:當(dāng)設(shè)備出現(xiàn)1級(jí)報(bào)警時(shí),【"DB3100_Manual".Manual[#NO].Code】的值變?yōu)椤?”,此時(shí)該部件的動(dòng)作將全部停止。?

下圖程序表示:
當(dāng)【"DB3100_Manual".Manual[#NO].Code】的值為”2”或”4”時(shí),將其值變?yōu)椤?”。
當(dāng)操作者在觸發(fā)部件動(dòng)作時(shí),【"DB3100_Manual".Manual[#NO].Code】的值仍會(huì)變?yōu)椤?”或”4”這段程序的目的是,在【"DB3100_Manual".Manual[#NO].Code】的值為”2”或”4”的情況下操作者停止觸發(fā)動(dòng)作后,將【"DB3100_Manual".Manual[#NO].Code】的值變?yōu)椤?”動(dòng)作將終止。

下圖程序表示:該部件的輸出動(dòng)作都設(shè)定為”FALSE”,而外部輸出接口”#HomeAck”和”#WorkAck”的狀態(tài)由下圖程序中的狀態(tài)決定。
只有當(dāng)【"DB3100_Manual".Manual[#NO].Code】的值變?yōu)椤?”或”2”或”3”或”4”時(shí),該部件才會(huì)有相應(yīng)的動(dòng)作。這段程序的目的是,【"DB3100_Manual".Manual[#NO].Code】的值的變更,能夠決定執(zhí)行哪個(gè)動(dòng)作或者終止哪個(gè)動(dòng)作。?
