国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于IAR visualSTATE的過欠壓保護器設計

2015-07-04 11:30:48朱學斌
電氣電子教學學報 2015年2期
關鍵詞:狀態(tài)圖狀態(tài)機代碼

朱學斌,孫 寧

(1魯東大學信息與電氣工程學院,山東煙臺264025;2煙臺臥龍園區(qū)發(fā)展有限公司,山東煙臺264004)

IAR visualSTATE是瑞典IAR公司開發(fā)的基于狀態(tài)機的嵌入式應用設計、測試和實現(xiàn)的工具軟件[1]。本文用此軟件對過欠壓保護器進行邏輯系統(tǒng)的狀態(tài)機建模,并利用其強大的仿真功能對邏輯進行校驗,隨后自動生成標準兼容的C代碼,編寫API驅動接口函數(shù)[2],完成整個系統(tǒng)的軟件設計。該產品在多個現(xiàn)場成功運行,表明此方法開發(fā)產品的有效性,周期也大大地縮短,代碼容易維護。

1 硬件設計

過欠壓保護器硬件原理圖如圖1所示。

圖中,電源穩(wěn)壓電路由電阻R4~R11、二極管D4~D7、12V齊納二極管Z1、限流電阻R1和擴流三極管Q7等組成。其中,R4~R11起分壓作用,用來減少Q7的耐壓值;二極管D4~D7起整流作用;電解電容EC1~EC3起到濾波和電量存儲作用。串聯(lián)穩(wěn)壓電路輸出PowerH端的大約11.2 V電壓為大電流磁保持繼電器供電。另外再經過穩(wěn)壓塊7805輸出VCC為單片機系統(tǒng)供電。

圖1 系統(tǒng)硬件圖

芯片U1B選擇的是Microchip公司8引腳單片機 PIC12F617[3]。還有 3.5kB 的 Flash,128BRAM,具有對Flash自讀寫功能。由于整定次數(shù)較少,定值沒必要專門用EEPROM來存儲。采集電路由二極管 D7、D8、電阻 R12、R13、R17、電容 EC5 組成。其中,D7、D8半波整流,R17為采樣電阻,EC5起著平波作用。

繼電器驅動采用H橋電路完成,如圖2所示。其中,T1為大電流單線圈磁保持繼電器,分斷電流能達到63A。當GP5為0,GP4為1時,三極管Q2、Q4導通,Q4集電極為低電平,這樣Q5導通,所以繼電器線圈左邊為低電位,右邊加了11.2V左右的電壓,繼電器合閘;同理,當GP4為0,GP5為1時,繼電器線圈左邊為正,右邊為負,繼電器分閘。

圖2 繼電器驅動電路

由于要求外加電壓在0~450 VAC范圍內,系統(tǒng)才能可靠的工作,考慮到電路板受空間限制,圖1中多個電阻采取串并聯(lián)的方式以減少電阻的功率。

2 IAR visualSTATE狀態(tài)機設計

過欠壓系統(tǒng)的功能為:系統(tǒng)上電默認初始狀態(tài)為欠壓狀態(tài):①當外部輸入電壓大于欠壓恢復定值(176 V)時,延時1分鐘(1分鐘內,外部電壓一旦小于欠壓值,定時器復位,以下同),則合閘,轉為正常運行狀態(tài);②正常態(tài)時,當外部輸入電壓大于過壓值(264 V)或小于欠壓值(154 V)時,延時1秒分閘,轉入故障態(tài);③過壓態(tài)時,當外部輸入電壓低于過壓恢復值(242 V),延時1分鐘合閘轉為正常態(tài)。④另外該系統(tǒng)用戶可以自行修改4個保護定值,當圖1的按鍵S1按下時,系統(tǒng)進入整定態(tài)。

根據系統(tǒng)功能知該系統(tǒng)是個典型的基于事件響應的邏輯控制系統(tǒng),可以用FSM(有限狀態(tài)機)對其進行建模。IAR visualSTATE支持并發(fā)與層次結構,可以軟件仿真復雜的邏輯,自行產生適合微控制器的代碼(ROM、RAM用量小),這樣可以大大縮小代碼編寫和調試時間,自己寫的代碼部分僅是輸入輸出有關的驅動部分。

系統(tǒng)總體狀態(tài)見圖3,分為運行態(tài)和設置態(tài),其中運行態(tài)為初始狀態(tài)。運行態(tài)有2個并發(fā)域:SampleTimerAbout和RelayLed。處于運行態(tài)時,當自鎖按鍵按下時,在進入整定態(tài)前,先給繼電器線圈加反向電壓A_RelayControl(2),所有定時器復位 Act_TimerCancel(65535),同時綠燈亮 A_Green_Red_LED(1)。處于設定態(tài),當按鍵彈起時,轉入運行態(tài)運行。

圖3 總體狀態(tài)圖

按鍵按下時,進入層次狀態(tài)機整定態(tài),內部狀態(tài)見圖4。內部有四個整定子狀態(tài):UnderSET、Under-ResumeSET、OverResumeSET和OverSET。欠壓整定部分分析:進入欠壓整定態(tài),就立即定時Act_Timer-Start(272),其中272=28+24。當32 ms的軟定時器8超時,產生E_PulseTime1事件,同時會產生動作A_RelayControl(3)讓繼電器線圈失電;當1 min軟定時器4超時,產生事件E_GsetTO1,同時產生動作把欠壓定值寫到指定的flash區(qū)域(Act_WriteEE)和紅燈亮,提醒用戶欠壓整定完畢,隨后轉入欠壓恢復整定狀態(tài)。其余整定狀態(tài)類似,不再分析。

圖4 SetState狀態(tài)圖

SampleTimeAbout的狀態(tài)見圖5?,F(xiàn)選 Under-Process為例來分析:當原狀態(tài)處在OverProcess時,若采集電壓低于欠壓定值就產生欠壓事件Eve_Under,取消 OverProcess內的定時器,啟動 UnderProcess內的1s定時器Act_TimerStart(Con_UnderBit0),同時置 UnderProcess標志 Act_vS_CheckState(1),隨后轉入 UnderProcess狀態(tài);當1s定時器超時,產生事件E_Filter1,引起自轉換,產生真正的欠壓信號Sig_Under驅動繼電器動作分閘;當處于UnderProcess狀態(tài)若有外部事件欠壓恢復或過壓時,就轉入相應過程狀態(tài),取消本過程定時器。

圖5 SampleTimeAbout狀態(tài)圖

RelayLed狀態(tài)圖見圖6。

圖6 RelayLed狀態(tài)圖

還是以欠壓為例,假設原狀態(tài)在NormalVoltage,當內部信號Sig_Under產生時,欠壓故障紅信號燈亮,繼電器線圈反向得電A_RelayControl(2)。同時分閘脈沖定時,隨后轉入狀態(tài)UnderVoltage;當分閘脈沖時間到,產生自轉換事件E_PulseTime1,同時讓繼電器線圈失電。

本設計的軟件開發(fā)環(huán)境為Microchip公司的MPLAB IDE v8.8,編譯器為 PICC9.83,注意的是:IAR visualSTATE產生代碼中的變量SEMSys1消耗RAM較大。如果不指定其絕對地址,讓編譯器自行編譯,編譯不能通過,提示RAM空間不夠,指定變量絕對地址的語句為[4]:

SEMDATASys1 SEMSys1@0x40;

3 結語

本文利用狀態(tài)機軟件VisualSTATE對過欠壓保護器進行程序設計,它能自行產生狀態(tài)機代碼,只要簡單編寫有關輸入輸出的驅動接口函數(shù)即可。開發(fā)人員可以減少代碼的編寫量,把大量的時間放在整體設計上去,增加開發(fā)效率,縮短產品上市時間,而且便于日后軟件維護,軟件也能自行產生開發(fā)文檔。

[1]IAR Systems,Inc.visualSTATE reference guide[EB/OL].[2014-05-10].http://www.iar.com/Products/IAR-visualSTATE/Userguides/

[2]IAR Systems,Inc.visualSTATE API guide[EB/OL].[2014-06-15].http://www.iar.com/Products/IAR-visualSTATE/Userguides/

[3]Microchip Technology Inc.PIC12F617 data sheet[EB/OL].[2014-04-8].http://ww1.microchip.com/downloads/en/DeviceDoc/41302D.pdf

[4]Microchip Technology Inc.HI-TECH C for PIC10/12/16 User's Guide.[EB/OL].[2014-07-08].http://www.microchip.com/Developmenttools/ProductDetails.aspx?PartNO=SW500010

猜你喜歡
狀態(tài)圖狀態(tài)機代碼
基于Web 的高校資產管理系統(tǒng)的設計與實現(xiàn)
航線網絡優(yōu)化方法研究
基于有限狀態(tài)機的交會對接飛行任務規(guī)劃方法
創(chuàng)世代碼
動漫星空(2018年11期)2018-10-26 02:24:02
創(chuàng)世代碼
動漫星空(2018年2期)2018-10-26 02:11:00
創(chuàng)世代碼
動漫星空(2018年9期)2018-10-26 01:16:48
創(chuàng)世代碼
動漫星空(2018年5期)2018-10-26 01:15:02
基于UML狀態(tài)圖的軟件系統(tǒng)測試用例生成方法
FPGA設計中狀態(tài)機安全性研究
黑龍江科學(2011年2期)2011-03-14 00:39:36
基于反熔絲FPGA的有限狀態(tài)機加固設計
乌兰浩特市| 攀枝花市| 巴彦县| 尚义县| 延长县| 石泉县| 会宁县| 天全县| 安图县| 大埔县| 河北省| 上栗县| 陕西省| 长治县| 韶山市| 壤塘县| 昭觉县| 韶关市| 浠水县| 潮安县| 雷波县| 资溪县| 杭锦后旗| 延吉市| 弥渡县| 永泰县| 赤峰市| 墨玉县| 新密市| 宁河县| 普兰县| 安福县| 东光县| 西峡县| 泽普县| 岢岚县| 宁远县| 江口县| 岳池县| 丹巴县| 福清市|