在下列初始化和操作順序中,HSCI1用做模型計(jì)數(shù)器。初始化假定S7-200剛進(jìn)入RUN(運(yùn)行)模式,因此,第一次掃描內(nèi)存位為真。否則,在進(jìn)入RUN(運(yùn)行)模式后,對(duì)于每個(gè)高速計(jì)數(shù)器HDEF指令只能執(zhí)行一次。對(duì)高速計(jì)數(shù)器第二次執(zhí)行HDEF產(chǎn)生運(yùn)行時(shí)錯(cuò)誤,不會(huì)以第一次執(zhí)行HDEF時(shí)為此計(jì)數(shù)器設(shè)置的方式改變計(jì)數(shù)器設(shè)置。
1.初始化模式0、模式1或模式2
為具有內(nèi)部方向(模式0、模式1或模式2)的單相向上/向下計(jì)數(shù)器初始化HSC1按下列步驟進(jìn)行:
(1)使用第一次掃描內(nèi)存位調(diào)用在其中執(zhí)行初始化操作的子程序。因?yàn)槭褂米映绦?隨后的掃描不再調(diào)用子程序,這可以減少掃描執(zhí)行時(shí)間。
(2)在初始化子程序中,將需要的控制操作輸入SMB47。例如,SMB47 = 16#F8產(chǎn)生下列結(jié)果:
啟用計(jì)數(shù)器:
●寫(xiě)新當(dāng)前值:
●寫(xiě)新預(yù)設(shè)值:
●方向?yàn)橄蛏嫌?jì)數(shù):
●設(shè)置啟動(dòng)和重設(shè)輸入到現(xiàn)用高速計(jì)數(shù)器。
(3)執(zhí)行HDEF指令,HSC輸入設(shè)置為1,“模式”輸入設(shè)置為下列之一:對(duì)于無(wú)外部重設(shè)或啟動(dòng)為0;對(duì)于外部重設(shè)和無(wú)啟動(dòng)為1:對(duì)于外部重設(shè)和啟動(dòng)為2。
(4)用期望的當(dāng)前值(用0載入以清除它)載入SMD48(雙字大小數(shù)值)。
(5)用期望的預(yù)設(shè)值載入SMD52(雙字大小數(shù)值)。
(6)為了捕獲當(dāng)前值等于預(yù)置事件,通過(guò)將CV=PV中斷事件(事件13,見(jiàn)表5-34)連接到中斷程序。
(7)為了捕獲外部重設(shè)事件,通過(guò)將外部重設(shè)中斷事件(事件15,見(jiàn)表5-34)連接到中斷程序。
(8)執(zhí)行全局中斷啟用指令(ENI)來(lái)啟用中斷。
(9)執(zhí)行HSC指令
(10)退出子程序。
2.初始化模式3、模式4或模式5
為具有外部方向(模式3、模式4或模式5)的單相向上/向下計(jì)數(shù)器初始化HSC1按下列步驟進(jìn)行:
(1)使用第一次掃描內(nèi)存位調(diào)用在其中執(zhí)行初始化操作的子程序。因?yàn)槭褂米映绦蛘{(diào)用,隨后的掃描不再調(diào)用子程序,這減少掃描執(zhí)行時(shí)間和提供更多的結(jié)構(gòu)程序。
(2)在初始化子程序中,根據(jù)期望的控制操作載入SMB47。例如,SMB47=16#F8產(chǎn)生下列結(jié)果:
●啟用計(jì)數(shù)器:
●寫(xiě)新當(dāng)前值:
●寫(xiě)新預(yù)設(shè)值:
●設(shè)置HSC的初始方向?yàn)橄蛏嫌?jì)數(shù);
●設(shè)置開(kāi)始和重設(shè)輸入為現(xiàn)用高速計(jì)數(shù)器。
(3)執(zhí)行HDEF指令,HSC輸入設(shè)置為1,“模式”輸入設(shè)置為下列之一:對(duì)于無(wú)外部重設(shè)或啟動(dòng)為3:對(duì)于外部重設(shè)和無(wú)啟動(dòng)為4:對(duì)于外部重設(shè)和啟動(dòng)為5。
(4)用期望的當(dāng)前值(用0載入以清除它)載入SMD48(雙字大小數(shù)值)。
(5)用期望的預(yù)設(shè)值載入SMD52(雙字大小數(shù)值)。
(6)為了捕獲當(dāng)前值等于預(yù)置事件,通過(guò)將CV =PV中斷事件(事件13,見(jiàn)表5-34)連接到中斷程序。
(7)為了捕獲外部方向改變,通過(guò)將方向改變中斷事件(事件14,見(jiàn)表5-34)連接到中斷程序。
(8)為了捕獲外部重設(shè)事件,通過(guò)將外部重設(shè)中斷事件(事件15,見(jiàn)表5-34)連接到中斷程序。
(9)執(zhí)行全局中斷啟用指令(END)來(lái)啟用中斷。
(10)執(zhí)行高速計(jì)數(shù)器指令。
(11)退出子程序
3.初始化模式6、模式7或模式8
為具有向上/向下時(shí)鐘(模式6、模式7或模式8)的雙相向上/向下計(jì)數(shù)器初始化HSC1按下列步驟進(jìn)行:
(1)使用第一次掃描內(nèi)存位調(diào)用在其中執(zhí)行初始化操作的子程序。因?yàn)槭褂米映绦蛘{(diào)用,隨后的掃描不再調(diào)用子程序,這減少掃描執(zhí)行時(shí)間和提供更多的結(jié)構(gòu)程序。
(2)在初始化子程序中,根據(jù)期望的控制操作載入SMB47.例如,SMB47=16#F8產(chǎn)生下列結(jié)果:
●啟用計(jì)數(shù)器:
●寫(xiě)新當(dāng)前值:
●寫(xiě)新預(yù)設(shè)值:
●設(shè)置高速計(jì)數(shù)器的初始方向?yàn)橄蛏嫌?jì)數(shù):
●設(shè)置開(kāi)始和重設(shè)輸入為現(xiàn)用高速計(jì)數(shù)器。
(3)執(zhí)行HDEF指令,高速計(jì)數(shù)器輸入設(shè)置為1,“模式”設(shè)置為下列之一:對(duì)于無(wú)外部重設(shè)或啟動(dòng)為6;對(duì)于外部重設(shè)和無(wú)啟動(dòng)為7;對(duì)于外部重設(shè)和啟動(dòng)為8。
(4)用期望的當(dāng)前值(用0載入以清除它)載入SMD48(雙字大小數(shù)值)。
(5)用期望的預(yù)設(shè)值載入SMD52(雙字大小數(shù)值)。
(6)為了捕獲當(dāng)前值等于預(yù)置事件,通過(guò)將CV=PV中斷事件(事件13)連接到中斷程序。可參考關(guān)于中斷的部分
(7)為了捕獲外部方向改變,通過(guò)將方向改變中斷事件(事件14)連接到中斷程序。
(8)為了捕獲外部重設(shè)事件,通過(guò)將外部重設(shè)中斷事件(事件15)連接到中斷程序。
(9)執(zhí)行全局中斷啟用指令(ENI)來(lái)啟用中斷。
(10)執(zhí)行高速計(jì)數(shù)器指令。
(11)退出子程序。
4.初始化模式9、模式10或模式11
為A/B相正交計(jì)數(shù)器(模式9、模式10或模式11)初始化HSC1按下列步驟進(jìn)行:
(1)使用第一次掃描內(nèi)存位調(diào)用在其中執(zhí)行初始化操作的子程序。因?yàn)槭褂米映绦蛘{(diào)用,隨后的掃描不再調(diào)用子程序,這減少掃描執(zhí)行時(shí)間并提供更多的結(jié)構(gòu)化程序。
(2)在初始化子程序中,根據(jù)期望的控制操作載入SMB47。
示例(1x計(jì)數(shù)模式):SMB47=16#FC產(chǎn)生下列結(jié)果:
●啟用計(jì)數(shù)器:
●寫(xiě)新當(dāng)前值
●寫(xiě)新預(yù)設(shè)值
●設(shè)置高速計(jì)數(shù)器的初始方向?yàn)橄蛏嫌?jì)數(shù):
●設(shè)置開(kāi)始和重設(shè)輸入為現(xiàn)用高速計(jì)數(shù)器。
示例(4X計(jì)數(shù)模式):SMB47=16#F8產(chǎn)生下列結(jié)果:
●啟用計(jì)數(shù)器
●寫(xiě)新當(dāng)前值:
寫(xiě)新預(yù)設(shè)值:
●設(shè)置高速計(jì)數(shù)器的初始方向?yàn)橄蛏嫌?jì)數(shù);
●設(shè)置開(kāi)始和重設(shè)輸入為現(xiàn)用高速計(jì)數(shù)器。
(3)執(zhí)行HDEF指令,高速計(jì)數(shù)器輸入設(shè)置為1,“模式”輸入設(shè)置為下列之一:對(duì)于無(wú)外部重設(shè)或啟動(dòng)為9:對(duì)于外部重設(shè)和無(wú)啟動(dòng)為10:對(duì)于外部重設(shè)和啟動(dòng)為11。
(4)用期望的當(dāng)前值(用0載入以清除它)載入SMD48(雙字大小數(shù)值)。
(5)用期望的預(yù)設(shè)值載入SMD52(雙字大小數(shù)值)。
(6)為了捕獲當(dāng)前值等于預(yù)置事件,通過(guò)將CV=PV中斷事件(事件13,見(jiàn)表5-34)連接到中斷程序。關(guān)于中斷處理的細(xì)節(jié)可參考啟用中斷(ENI)部分。
(7)為了捕獲方向改變,通過(guò)將方向改變中斷事件(事件14,見(jiàn)表5-34)連接到中斷程序。
(8)為了捕獲外部重設(shè)事件,通過(guò)將外部重設(shè)中斷事件(事件15,見(jiàn)表5-34)連接到中斷程序。
(9)執(zhí)行全局中斷啟用指令(ENI)來(lái)啟用中斷。
(10)執(zhí)行高速計(jì)數(shù)器指令。
(11)退出子程序。
5.在模式0、模式1或模式2中改變方向
在模式0、模式1或模式2中改變方向按下列步驟進(jìn)行:
(1)載入SMB47以寫(xiě)期望的方向:SMB47=16#90,啟用計(jì)數(shù)器,設(shè)置高速計(jì)數(shù)器的方向?yàn)橄蛳掠?jì)數(shù)
SMB47=16#98啟用計(jì)數(shù)器,設(shè)置高速計(jì)數(shù)器的方向?yàn)橄蛏嫌?jì)數(shù)。
(2)執(zhí)行高速計(jì)數(shù)器指令以引發(fā)S7-200對(duì)HSC1編程
6.載入新當(dāng)前值(任何模式)
更換當(dāng)前值強(qiáng)制當(dāng)改變進(jìn)行時(shí)計(jì)數(shù)器禁用。當(dāng)計(jì)數(shù)器禁用時(shí),它不計(jì)數(shù)或產(chǎn)生中斷,
改變HSCI的計(jì)數(shù)器當(dāng)前值(任何模式)按下列步驟進(jìn)行:
(1)載入SMB47以寫(xiě)期望的當(dāng)前值:SMB47=16#C0,啟用計(jì)數(shù)器,寫(xiě)新當(dāng)前值。
(2)用期望的當(dāng)前值(用0載入以清除它)載入SMD48(雙字大小數(shù)值)。
(3)執(zhí)行HSC指令
7.載入新預(yù)設(shè)值(任何模式)
改變HSC1的預(yù)設(shè)值(任何模式)按下列步驟進(jìn)行:
(Il)載入SMB47以寫(xiě)期望的預(yù)設(shè)值:SMB47=16#A0,啟用計(jì)數(shù)器,寫(xiě)新預(yù)設(shè)值
(2)用期望的預(yù)設(shè)值SMD52(雙字大小數(shù)值)。
(3)執(zhí)行HSC指令。
8.禁用高速計(jì)數(shù)器(任何模式)
禁用HSCI高速計(jì)數(shù)器(任何模式)按下列步驟進(jìn)行:
(1)將SMB47載入到禁用計(jì)數(shù)器:SMB47=16#00,禁用計(jì)數(shù)器。
(2)執(zhí)行高速計(jì)數(shù)器指令以禁用計(jì)數(shù)器。
高速計(jì)數(shù)器指令示例如圖5-72所示。