第一篇:struts2_控制器介紹
struts2 控制器介紹
核心控制器FilterDispatcher
核心控制器FilterDispatcher是Struts 2框架的基礎(chǔ),包含了框架內(nèi)部的控制流程和處理機(jī)制。業(yè)務(wù)控制器Action和業(yè)務(wù)邏輯組件是需要用戶來自己實(shí)現(xiàn)的。用戶在開發(fā)Action和業(yè)務(wù)邏輯組件的同時,還需要編寫相關(guān)的配置文件,供核心控制器FilterDispatcher來使用。
Struts 2的工作流程相對于Struts 1要簡單,與WebWork框架基本相同,所以說Struts 2是WebWork的升級版本。Struts 2框架按照模塊來劃分,可以分為Servlet Filters、Struts核心模塊、攔截器和用戶實(shí)現(xiàn)部分。Struts 2框架結(jié)構(gòu)圖如圖3.1所示。
圖3.1 Struts 2框架結(jié)構(gòu)圖
一個請求在Struts 2框架中的處理大概分為以下幾個步驟。
客戶端提交一個(HttpServletRequest)請求,如上文在瀏覽器中輸入
http://localhost: 8080/bookcode/ch2/Reg.action就是提交一個(HttpServletRequest)請求。
請求被提交到一系列(主要是3層)的過濾器(Filter),如(ActionContextCleanUp、其他過濾器(SiteMesh等)、FilterDispatcher)。注意:這里是有順序的,先ActionContext CleanUp,再其他過濾器(Othter Filters、SiteMesh等),最后到FilterDispatcher。
FilterDispatcher是控制器的核心,就是MVC的Struts 2實(shí)現(xiàn)中控制層(Controller)的核心。
FilterDispatcher詢問ActionMapper是否需要調(diào)用某個Action來處理這個(HttpServlet Request)請求,如果ActionMapper決定需要調(diào)用某個Action,F(xiàn)ilterDispatcher則把請求的處理交給ActionProxy。
ActionProxy通過Configuration Manager(struts.xml)詢問框架的配置文件,找到需要調(diào)用的Action類。例如,用戶注冊示例將找到UserReg類。
ActionProxy創(chuàng)建一個ActionInvocation實(shí)例,同時ActionInvocation通過代理模式調(diào)用Action。但在調(diào)用之前,ActionInvocation會根據(jù)配置加載Action相關(guān)的所有Interceptor(攔截器)。
一旦Action執(zhí)行完畢,ActionInvocation負(fù)責(zé)根據(jù)struts.xml中的配置找到對應(yīng)的返回結(jié)果result。Struts 2的核心控制器是FilterDispatcher,有3個重要的方法:destroy()、doFilter()和Init(),可以在Struts 2的下載文件夾中找到源代碼,如代碼3.1所示。
代碼3.1 核心控制器FilterDispatcher
public class FilterDispatcher implements StrutsStatics, Filter {
/**
* 定義一個Log實(shí)例
*/
private static final Log LOG = LogFactory.getLog(FilterDispatcher.class);
/**
* 存放屬性文件中的.STRUTS_I18N_ENCODING值
*/
private static String encoding;
/**
* 定義ActionMapper實(shí)例
*/
private static ActionMapper actionMapper;
/**
* 定義FilterConfig實(shí)例
*/
private FilterConfig filterConfig;
protected Dispatcher dispatcher;
/**
* 創(chuàng)建一個默認(rèn)的dispatcher,初始化filter
* 設(shè)置默認(rèn)的packages
*
*/
public void init(FilterConfig filterConfig)throws ServletException {
this.filterConfig = filterConfig;
dispatcher = createDispatcher(filterConfig);
dispatcher.init();
String param = filterConfig.getInitParameter(“packages”);
String packages = “org.apache.struts2.static template org.apache.struts2.interceptor.debugging”;
if(param!= null){
packages = param + “ ” + packages;
}
this.pathPrefixes = parse(packages);
}
//銷毀filter方法
public void destroy(){
if(dispatcher == null){
LOG.warn(“something is seriously wrong, Dispatcher is not initialized(null)”);
} else {
dispatcher.cleanup();
}
}
/**
* 處理一個Action或者資源請求
*
* filter嘗試將請求同action mapping相匹配
* 如果找到,將執(zhí)行dispatcher的serviceAction方法
* 如果Action處理失敗, doFilter將建立一個異常
*
* 如果請求靜態(tài)資源
* 資源將被直接復(fù)制給 response
*
* 如果找不到匹配Action 或者靜態(tài)資源,則直接跳出
public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain)throws IOException, ServletException {
HttpServletRequest request =(HttpServletRequest)req;
HttpServletResponse response =(HttpServletResponse)res;
ServletContext servletContext = getServletContext();
String timerKey = “FilterDispatcher_doFilter: ”;
try {
UtilTimerStack.push(timerKey);
request = prepareDispatcherAndWrapRequest(request, response);
ActionMapping mapping;
try {
mapping=actionMapper.getMapping(request, dispatcher.getConfigurationManager());
} catch(Exception ex){
LOG.error(“error getting ActionMapping”, ex);
dispatcher.sendError(request, response, servletContext, HttpServletResponse.SC_INTERNAL_SERVER_ERROR, ex);
return;
}
if(mapping == null){
String resourcePath = RequestUtils.getServletPath(request);
if(“".equals(resourcePath)&& null!= request.getPathInfo()){
resourcePath = request.getPathInfo();
}
if(serveStatic && resourcePath.startsWith(”/struts“)){
String name = resourcePath.substring(”/struts“.length());
findStaticResource(name, request, response);
} else {
//為一個普通的request, 則通過
chain.doFilter(request, response);
}
return;
} /**
*這個方法詢問ActionMapper是否需要調(diào)用某個Action來處理這個(request)請求,*如果ActionMapper決定需要調(diào)用某個Action,*FilterDispatcher則把請求的處理交給ActionProxy
dispatcher.serviceAction(request, response, servletContext, mapping);
} finally {
try {
ActionContextCleanUp.cleanUp(req);
} finally {
UtilTimerStack.pop(timerKey);
}
} }
… …
}
在doFilter()方法中,將調(diào)用dispatcher.serviceAction,該方法如果找到相應(yīng)的Action,將把用戶請求交給ActionProxy。serviceAction()代碼在Dispatcher.java中,如代碼3.2所示。
代碼3.2 Dispatcher類
public class Dispatcher {.../**
* 為mapping加載類,并調(diào)用相應(yīng)的方法或者直接返回result
*
* 根據(jù)用戶請求的參數(shù),建立Action上下文
* 根據(jù)指定的Action’名稱和包空間名稱,加載一個Action代理 ActionProxy
* 然后Action的相應(yīng)方法將被執(zhí)行,*/
public void serviceAction(HttpServletRequest request, HttpServletResponse response, ServletContext context, ActionMapping mapping)throws ServletException {
Map
//如果存在一個值棧,則建立一個新的并復(fù)制以備Action使用
ValueStack stack =(ValueStack)request.getAttribute(ServletActionContext.STRUTS_VALUESTACK_KEY);
if(stack!= null){
extraContext.put(ActionContext.VALUE_STACK, ValueStackFactory.getFactory().createValueStack(stack));
}
String timerKey = ”Handling request from Dispatcher“;
try {
UtilTimerStack.push(timerKey);
String namespace = mapping.getNamespace();
String name = mapping.getName();
String method = mapping.getMethod();
Configuration config = configurationManager.getConfiguration();
//FilterDispatcher把請求的處理交給ActionProxy
ActionProxy proxy = config.getContainer().getInstance(ActionProxyFactory.class).createActionProxy(namespace, name, extraContext, true, false);
proxy.setMethod(method);
request.setAttribute(ServletActionContext.STRUTS_VALUESTACK_KEY, proxy.getInvocation().getStack());
//ActionMapping 直接返回一個result
if(mapping.getResult()!= null){
Result result = mapping.getResult();
result.execute(proxy.getInvocation());
} else {
proxy.execute();
}
if(stack!= null){
request.setAttribute(ServletActionContext.STRUTS_VALUESTACK_KEY, stack);
}
} catch(ConfigurationException e){
LOG.error(”Could not find action or result", e);
sendError(request, response, context, HttpServletResponse.SC_NOT_FOUND, e);
} catch(Exception e){
throw new ServletException(e);
} finally {
UtilTimerStack.pop(timerKey);
}
} …
}
從上面代碼中可以看出來,Struts 2用于處理用戶請求的Action實(shí)例,并不是用戶實(shí)現(xiàn)的業(yè)務(wù)控制器,而是Action代理。關(guān)于Action代理相關(guān)內(nèi)容,讀者可以參考攔截器章節(jié)的介紹。
★ 提示 ★
前面一直在說Action可以是一個普通的Java類,與Servlet API完全分離,但是為了實(shí)現(xiàn)業(yè)務(wù)邏輯,Action需要使用HttpServletRequest內(nèi)容。
Struts 2設(shè)計的精巧之處就是使用了Action代理,Action代理可以根據(jù)系統(tǒng)的配置,加載一系列的攔截器,由攔截器將HttpServletRequest參數(shù)解析出來,傳入Action。同樣,Action處理的結(jié)果也是通過攔截器傳入HttpServletResponse,然后由HttpServletRequest傳給用戶。
其實(shí),該處理過程是典型的AOP(面向切面編程)的方式,讀者可以在后面詳細(xì)了解到。Struts 2處理過程模型如圖3.2所示。
圖3.2 Struts 2處理過程模型
★ 說明 ★
攔截器是Struts 2框架的核心,通過攔截器,實(shí)現(xiàn)了AOP(面向切面編程)。使用攔截器,可以簡化Web開發(fā)中的某些應(yīng)用,例如,權(quán)限攔截器可以簡化Web應(yīng)用中的權(quán)限檢查。
3.1.2
業(yè)務(wù)控制器Action
業(yè)務(wù)控制器Action是由開發(fā)者自己編寫實(shí)現(xiàn)的,Action類可以是一個簡單的Java類,與Servlet API完全分離。Action一般都有一個execute()方法,也可以定義其他業(yè)務(wù)控制方法,詳細(xì)內(nèi)容將在后面介紹。
Action的execute()返回一個String類型值,這與Struts 1返回的ActionForward相比,簡單易懂。Struts 2提供了一個ActionSupport工具類,該類實(shí)現(xiàn)了Action接口和validate()方法,一般開發(fā)者編寫Action可以直接繼承ActionSupport類。編寫Action類后,開發(fā)者還必須在配置文件中配置Action。一個Action的配置應(yīng)該包含下面幾個元素:
1、該Action的name,即用戶請求所指向的URL。
2、Action所對應(yīng)的class元素,對應(yīng)Action類的位置。
3、指定result邏輯名稱和實(shí)際資源的定位。
Action是業(yè)務(wù)控制器,筆者建議在編寫Action的時候,盡量避免將業(yè)務(wù)邏輯放到其中,盡量減少Action與業(yè)務(wù)邏輯模塊或者組件的耦合程度。
3.1.3
業(yè)務(wù)模型組件
業(yè)務(wù)模型組件可以是實(shí)現(xiàn)業(yè)務(wù)邏輯的模塊,可以是EJB、POJO或者JavaBean,在實(shí)際開發(fā)中,對業(yè)務(wù)模型組件的區(qū)分和定義也是比較模糊的,實(shí)際上也超出了Struts 2框架的范圍。不同的開發(fā)者或者團(tuán)隊,都有自己的方式來實(shí)現(xiàn)業(yè)務(wù)邏輯模塊,Struts 2框架的目的就是使用Action來調(diào)用業(yè)務(wù)邏輯模塊。例如一個銀行存款的業(yè)務(wù)邏輯模塊,如代碼3.3所示。
代碼3.3 模擬一個銀行業(yè)務(wù)的實(shí)現(xiàn)模塊
package ch3;
public class Bank {
//定義銀行賬戶
private String accounts;
//定義操作金額
private double money;
//屬性的getter和setter方法
public String getAccounts(){
return accounts;
}
public void setAccounts(String accounts){
this.accounts = accounts;
}
public double getMoney(){
return money;
}
public void setMoney(double money){
this.money = money;
}
//模擬銀行存款方法
public boolean saving(String accounts, double money){
//調(diào)用DAO等模塊讀寫數(shù)據(jù)庫
return dosomeing();
}
}
上面實(shí)例在實(shí)際開發(fā)中沒有任何意義,這里只是作為業(yè)務(wù)邏輯模塊來說明,在執(zhí)行saving(String accounts,double money)方法時,可以調(diào)用相應(yīng)的數(shù)據(jù)庫訪問其他組件,來實(shí)現(xiàn)存款操作。使用Action調(diào)用該業(yè)務(wù)邏輯組件可以在execute()方法中實(shí)現(xiàn),如代碼3.4所示。
代碼3.4 業(yè)務(wù)控制器Bank_Saving_Action
package ch3;
import java.util.Map;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;
public class Bank_Saving_Action extends ActionSupport {
//定義銀行賬戶
private String accounts;
//定義操作金額
private double money;
public String execute()throws Exception {
//創(chuàng)建Bank實(shí)例
Bank bk=new Bank();
//調(diào)用存款方法
if(bk.saving(accounts, money)){
return SUCCESS;
}else{
return ERROR;
} }
//屬性的getter和setter方法
public String getAccounts(){
return accounts;
}
public void setAccounts(String accounts){
this.accounts = accounts;
}
public double getMoney(){
return money;
}
public void setMoney(double money){
this.money = money;
}
Bank_Saving_Action演示了對銀行存款業(yè)務(wù)邏輯組件的調(diào)用,這里是通過在Action中創(chuàng)建業(yè)務(wù)邏輯組件實(shí)例的方式實(shí)現(xiàn)的。在實(shí)際開發(fā)中,可以使用靜態(tài)工廠獲得業(yè)務(wù)邏輯組件的實(shí)例或者使用IoC容器來管理。Action中不實(shí)現(xiàn)任何業(yè)務(wù)邏輯,只是負(fù)責(zé)組織調(diào)度業(yè)務(wù)邏輯組件。調(diào)用關(guān)系如圖3.3所示。
圖3.3 調(diào)用業(yè)務(wù)邏輯組件
★ 說明 ★
業(yè)務(wù)控制器Action一般情況下不是直接創(chuàng)建業(yè)務(wù)邏輯組件實(shí)例,而是使用工廠模式或者是從Spring容器中獲得業(yè)務(wù)邏輯組件實(shí)例,這樣可以提高系統(tǒng)的性能。
3.1.4
視圖組件
Struts 1只能支持JSP作為視圖資源,而Struts 2的進(jìn)步之處就是可以使用其他視圖技術(shù),如FreeMarker、Velocity等。通過前面的學(xué)習(xí)和示例,讀者會知道Action的返回結(jié)果只是一個簡單的字符串,也就是一個邏輯上的視圖名稱,要與實(shí)際視圖資源對應(yīng),必須通過配置文件來實(shí)現(xiàn)。
在struts.xml配置文件中,每一個Aciton定義都有name和class屬性,同時還要指定result元素。result元素指定了邏輯視圖名稱和實(shí)際視圖的對應(yīng)關(guān)系。每個result都有一個type屬性,前面介紹的struts.xml中并沒有顯式指定type值,即使用了默認(rèn)的type類型:dispatcher,該結(jié)果類型支持JSP所謂視圖資源。
對于Struts 2的視圖技術(shù)和result返回類型,后面將詳細(xì)介紹。
第二篇:電動車控制器介紹
電動車控制器介紹
電動車控制器是用來控制電動車電機(jī)的啟動、運(yùn)行、進(jìn)退、速度、停止以及電動車的其它電子器件的核心控制器件,它就象是電動車的大腦,是電動車上重要的部件。
我們開發(fā)的智能型無刷電動車控制器采用了美國cypress公司的方案,采用性能非常優(yōu)異單片機(jī)作為主控芯片,來實(shí)現(xiàn)控制和保護(hù)電動車的電機(jī)、電池,使電動車驅(qū)動系統(tǒng)工作在最佳狀態(tài),從而提高產(chǎn)品的可靠性和使用壽命;采用霍爾電子無級調(diào)速系統(tǒng),具有欠壓保護(hù)、過流保護(hù)、堵轉(zhuǎn)保護(hù)等保護(hù)功能,可靠的對電動車電機(jī)和電池進(jìn)行保護(hù),確保電動車使用及安全;加入了全新的無刷電機(jī)控制器理論,具有反充電/EABS剎車功能,用戶在關(guān)掉電源的情況下可把電機(jī)鎖死,使車子很難推行,另外還加入1+1助力系統(tǒng),具有巡航功能,模式切換功能,實(shí)現(xiàn)了真正的智能型控制。
一、控制器功能:
1、工作電壓: DC 48V;
2、功率: 350W 450W 500W;
3、欠壓保護(hù): DC 41.5V ±1V(也可根據(jù)用戶要求設(shè)定);
4、電動模式:霍爾電子無級調(diào)速系統(tǒng),調(diào)速范圍 0~100%,1.1~4.2V;
5、限流電流:≤17A(平均值),最大脈沖電流35A(根據(jù)用戶要求設(shè)定);
6、限速功能:最高車速可達(dá)35km/h~45km/h(根據(jù)電機(jī)而定),限速行駛速度控制在20km/h以內(nèi);
7、啟動方式:手柄控制啟動快慢,控制靈活;
8、剎車:EABS+機(jī)械剎,高/低電平;
9、巡航模式:具有自動巡航和手動巡航兩種功能可選,8秒進(jìn)入巡航,穩(wěn)定行駛速度,無須手柄控制;
10、1+1助力功能:控制器根據(jù)騎車者腳踏力的大小(速度快慢),給出相應(yīng)比例的電機(jī)動力,實(shí)現(xiàn)了在騎行中輔以動力,讓騎行者感覺更輕松,中軸轉(zhuǎn)速智能型;
11、堵轉(zhuǎn)保護(hù)功能:自動判斷電機(jī)在過流時是處于完全堵轉(zhuǎn)狀態(tài)還是在運(yùn)行狀態(tài)
或電機(jī)短路狀態(tài),如過流時是處于運(yùn)行狀態(tài),控制器將限流值設(shè)定在固定值,以保持整車的驅(qū)動能力;如電機(jī)處于純堵轉(zhuǎn)狀態(tài),則控制器2秒后將限流值控制在10A以下,起到保護(hù)電機(jī)和電池,節(jié)省電能;如電機(jī)處于短路狀態(tài),控制器則使輸出電流控制在2A以下,以確保控制器及電池的安全。
12、防飛車功能:解決了無刷控制器由于轉(zhuǎn)把或線路故障引起的飛車現(xiàn)象,同時
具有啟動防飛車功能,提高了系統(tǒng)的安全性。
13、電機(jī)鎖功能:在關(guān)閉電門鎖的情況下,控制器能自動將電機(jī)鎖死,實(shí)現(xiàn)了部
件級的防盜功能,解決了防盜型控制器在警戒狀態(tài)下控制器還必須工作,工作電流大的不利因素。
14、遙控功能:在關(guān)閉電門鎖的情況下,控制器通過遙控報警器自動在將電機(jī)鎖
死的同時具有報警功能,實(shí)現(xiàn)了遙控與部件級的雙重防盜功能,解決了防盜型控制器在警戒狀態(tài)下控制器還必須工作,工作電流大的不利因素。并可在車場中通過遙控器尋車。
15、反充電功能:滑行時可對電池進(jìn)行反充電,在延長了電池的行駛時間的同時
增加了電池的使用壽命,解決了電池在行駛時的行駛時間短和使用壽命不長的問題。
16、電機(jī)選擇:解決了正、反相繞阻電機(jī)之間不兼容的現(xiàn)象,方便了用戶的使用。17、120o/60o選擇:120o與60o電機(jī)可相互切換。
18、指示燈顯示代碼:
1、指示燈常滅:控制器進(jìn)入運(yùn)行狀態(tài);
2、指示燈亮0.5滅0.5秒閃爍一次,滅1秒:控制器進(jìn)入待機(jī)狀態(tài);
3、指示燈亮0.5滅0.5秒閃爍二次,滅1秒:剎車信號;
4、指示燈亮0.5滅0.5秒閃爍三次,滅1秒:MOS損壞;
5、指示燈亮0.5滅0.5秒閃爍四次,滅1秒:飛車保護(hù);
6、指示燈亮0.5滅0.5秒閃爍五次,滅1秒:電流故障;
7、指示燈亮0.5滅0.5秒閃爍六次,滅1秒:電源電壓低保護(hù);
8、指示燈亮0.5滅0.5秒閃爍七次,滅1秒:霍爾信號故障;
9、指示燈亮0.5滅0.5秒閃爍八次,滅1秒:手柄信號未接。
二、使用方法:
1、在接線前先切斷電源,按接線圖所示連接各根導(dǎo)線;
2、該控制器應(yīng)安裝在通風(fēng)、防水、防震部位;
3、控制器限速控制插頭應(yīng)放置容易操作的地方;
4、控制器接插件應(yīng)接插到位,禁止將控制器電源正負(fù)極反接;
5、測試后裝進(jìn)鋁殼之前,建議放電。
第三篇:機(jī)房空調(diào)控制器系統(tǒng)介紹
上海中光信息工程有限公司
機(jī)房空調(diào)控制器介紹
通信運(yùn)營商在基站建設(shè)中絕大部分基站采用民用舒適性空調(diào),由于舒適空調(diào)設(shè)計目的是為了在有人空間內(nèi),將溫度調(diào)整到人體比較舒適的溫度,其設(shè)計溫度為設(shè)定溫度正負(fù)1度左右。而基站內(nèi)的空調(diào)主要服務(wù)于設(shè)備,設(shè)備的溫度范圍根據(jù)規(guī)范要求有10度左右的溫寬。這就為通過節(jié)能型智能空調(diào)控制器對舒適性空調(diào)的溫度范圍進(jìn)行智能化控制,實(shí)現(xiàn)在基站這樣特定應(yīng)用場景中通過寬溫控制手段,從而避免空調(diào)壓縮機(jī)相對頻繁啟動所造成的不必要的能源浪費(fèi),以實(shí)現(xiàn)節(jié)能的目的。
博德爾節(jié)能型空調(diào)智能節(jié)電器技術(shù)特點(diǎn):
1.全智能自動控制:采用單片機(jī)進(jìn)行編程,所有設(shè)置功能全自動執(zhí)行;
面板直觀顯示:控制器面板可直觀顯示設(shè)定的開關(guān)機(jī)溫度,及機(jī)房溫度,方便本地查詢;
2.設(shè)置功能:可設(shè)置空調(diào)開關(guān)機(jī)的溫度,適應(yīng)不同應(yīng)用場景的需求。
3.空調(diào)控制方式:具有空調(diào)電源、面板、紅外控制等至少2種以上的控制方式,適不同類
型空調(diào)。
4.監(jiān)控功能:設(shè)備配有RS485通信接口,提供開放的通信協(xié)議(接口通信協(xié)議滿足
YD/T1363.3-2005中B.13要求)。方便客戶納入監(jiān)控系統(tǒng),可直接接入監(jiān)控采集器或其他智能采集設(shè)備。
5.電源安全性:多重防雷設(shè)計,包括輸入電源、接口、器件均根據(jù)基站防雷相關(guān)標(biāo)準(zhǔn)設(shè)計了防雷保護(hù)措施。寬電壓設(shè)計工作穩(wěn)定。從而達(dá)到運(yùn)營商級的產(chǎn)品。絕非民用級產(chǎn)品。
6.權(quán)限設(shè)置:系統(tǒng)設(shè)置了使用權(quán)限設(shè)定,避免了誤操作及越權(quán)操作。
7.消防安全:全金屬外殼,所以線纜均采用阻燃電纜及輔材。并設(shè)有消防聯(lián)動接口,避免在火災(zāi)情況下啟動空調(diào)。接入后火災(zāi)狀態(tài)下立即關(guān)閉空調(diào)。
8.程序自保護(hù)設(shè)計:程序中對于空調(diào)設(shè)定溫度范圍設(shè)計有一點(diǎn)區(qū)間,任何誤設(shè)定或違反節(jié)能邏輯目的的設(shè)定均為無效設(shè)定。
9.低功耗:設(shè)備本身設(shè)計功耗極低,為毫安級功耗。
10.空調(diào)工作狀態(tài)反饋:具有空調(diào)工作狀態(tài)反饋設(shè)計,確??照{(diào)的開關(guān)可靠。
11.接口冗余設(shè)計:可根據(jù)用戶需求預(yù)留增值功能接口,如空調(diào)過濾網(wǎng)堵塞狀態(tài)告警,方便維護(hù)人員的運(yùn)維工作。
12.免維護(hù):設(shè)備安裝后無需維護(hù),設(shè)備內(nèi)置自檢程序,如發(fā)現(xiàn)自身器件發(fā)生故障將自動切出,恢復(fù)空調(diào)自運(yùn)行模式。
第四篇:洗衣機(jī)節(jié)水控制器管理系統(tǒng)介紹及解決方案
洗衣機(jī)節(jié)水控制器管理系統(tǒng)介紹及解決方案
一、洗衣機(jī)節(jié)水控制器管理系統(tǒng)概述:
隨著水資源的日益短缺,節(jié)水已成為各個用水單位、整個國家以及世界各國的重要課題。在我國,用水存在著巨大的浪費(fèi),這既有政策方面的問題也有技術(shù)層面的原因。要實(shí)現(xiàn)用水的現(xiàn)代化管理,北京泰德匯智研制和改造的洗衣機(jī)節(jié)水控制器管理系統(tǒng)有效的減輕了這一現(xiàn)象。
洗衣機(jī)節(jié)水控制器管理系統(tǒng)有聯(lián)網(wǎng)和脫機(jī)兩種方式。脫機(jī)時可用采集卡進(jìn)行數(shù)據(jù)采集;聯(lián)網(wǎng)時可以與電腦通過網(wǎng)絡(luò)連接后用軟件進(jìn)行設(shè)備參數(shù)設(shè)置、消費(fèi)數(shù)據(jù)采集及查詢、統(tǒng)計、報表、結(jié)算等處理。從而達(dá)到節(jié)水節(jié)電,科學(xué)收費(fèi),高效管理的目的。廣泛應(yīng)用于學(xué)校、企業(yè)、政府、工廠澡堂、浴室、開水房、飲水機(jī)等
北京泰德匯智科技有限公司是國內(nèi)最大洗衣機(jī)節(jié)水控制器管理系統(tǒng)生產(chǎn)企業(yè)之一, 15年 洗衣機(jī)節(jié)水控制器管理系統(tǒng)生產(chǎn)經(jīng)驗(yàn),高品質(zhì)量洗衣機(jī)節(jié)水控制器管理系統(tǒng)售后服務(wù),數(shù)百家企業(yè)、上千臺節(jié)水控制器設(shè)備使用中。
二、洗衣機(jī)節(jié)水控制器管理系統(tǒng)產(chǎn)品特點(diǎn):
1.乳白色外觀,造型簡潔、美觀大方;
2.外殼噴漆容易清洗;
3.人性放卡槽設(shè)計(解決浴室無處放卡問題); 4.防水防潮(尤其浴室潮氣嚴(yán)重)專用模具; 5.紅外開關(guān)(無壽命限制、開關(guān)暫停水流非常方便); 6 .穩(wěn)定、維修率極低。
三、洗衣機(jī)節(jié)水控制器管理系統(tǒng)技術(shù)參數(shù):
技術(shù)指標(biāo)及技術(shù)參數(shù): 電源: 12V 存儲容量: ≥30000條 功耗: ≤2W 適用卡類: Mifare? One 讀寫速度: ≤0.1秒/次 工作溫度: 0℃—70℃ 工作濕度: 10%—90%RH 感應(yīng)距離: ≤10mm 通訊速率: 9600bps-38400bps 黑名單數(shù)量:65530個
支持控制閥類型:電磁閥、電機(jī)閥 計費(fèi)精度: 1秒
外形尺寸: 145×102×45 mm 重量: 400g
四、洗衣機(jī)節(jié)水控制器管理系統(tǒng)功能特點(diǎn):
1.全新防水設(shè)計,上下殼接縫裝有硅膠密封件防水。
2.節(jié)水設(shè)計,采用讀卡和紅外感應(yīng)雙重方式控水,通過節(jié)水器上紅外感應(yīng)自由控制水的通斷。
3.剩余金額不足洗浴 分鐘時自動提醒,讓浴客體會到人性化的設(shè)計。4.軟件功能齊全,數(shù)據(jù)安全可靠。完善的黑名單管理機(jī)制。
5.可選擇計量(水流量)方式扣費(fèi),配合流量表,計費(fèi)更加科學(xué)、公平、合理。
6.脫機(jī)型采用電子錢包方式,設(shè)備僅記錄消費(fèi)總額,免去帳目核對的煩惱;采用采集卡即可提取消費(fèi)累計數(shù)據(jù),無須復(fù)雜聯(lián)網(wǎng),減少施工量。7.軟件可強(qiáng)制水控器開閥或者關(guān)閥,便于遠(yuǎn)程靈活控制。8.無人值守的自助使用方式全天候運(yùn)行,節(jié)省人力物力資源。
9.不同人員類別可設(shè)置不同費(fèi)率,(在學(xué)校,老師一個價,學(xué)生一個價;在單位:經(jīng)理一個價,員工一個價)使管理者對帳戶的控制有足夠的靈活性。
10.洗浴時實(shí)時顯示卡中余額,讓浴客更了解自己的消費(fèi)情況,有利于提高節(jié)水意識。11.系統(tǒng)軟件自動把消費(fèi)明細(xì)轉(zhuǎn)換成Excel格式,并一鍵打印輸出各類統(tǒng)計報表。管理員如需打印消費(fèi)明細(xì)單,直接打印即可,無需在用辦公軟件進(jìn)行編輯。
12.強(qiáng)大的帳戶管理功能(掛失、補(bǔ)辦新卡、個人補(bǔ)助、集體補(bǔ)助、退款等等)。13.若浴客未通過紅外感應(yīng)開關(guān)關(guān)閉節(jié)水控制器,而強(qiáng)行將卡拿開,節(jié)水器將自動關(guān)閉閥門,并蜂鳴提示浴客將卡放回以便將余額回寫,避免浴客洗后不關(guān)水,有效的控制了用水環(huán)節(jié)。
14.開放卡未使用的扇區(qū)空間,有利于擴(kuò)展其他一卡通功能。15.超強(qiáng)大的帳戶容量(10萬人)。
16.精確的計算精度(消費(fèi)計算精度:0.01 元)
17.功耗為6W,電壓12V,節(jié)約用電的同時也百分百的防止了洗浴人員觸電的危險。18.終端按區(qū)域管理,讓管理者得心應(yīng)手.19.可脫機(jī)也可聯(lián)網(wǎng)。
五、洗衣機(jī)節(jié)水控制器管理系統(tǒng)組成:
洗衣機(jī)節(jié)水控制器管理系統(tǒng)由控制器、電磁閥(電動閥)、讀卡器、通訊器、IC卡、軟件組成。
六、洗衣機(jī)節(jié)水控制器管理系統(tǒng)原理:
通過服務(wù)器將現(xiàn)金貨幣轉(zhuǎn)化為電子貨幣,存儲于IC卡電子錢包內(nèi),當(dāng)消費(fèi)者需要消費(fèi)時,只需將IC卡放在水控機(jī)即可消費(fèi),從卡中扣除消費(fèi)金額。在交易過程沒有現(xiàn)金參與其中,真正實(shí)現(xiàn)智能消費(fèi)。
七、典型用戶:
1、校園類:
安徽醫(yī)科大學(xué),天津大學(xué),上海師范學(xué)院,杭州師范學(xué)院,中華女子學(xué)院,沈陽藥科大學(xué),徐州建筑職業(yè)技術(shù)學(xué)院,徐州師范大學(xué),哈爾濱工業(yè)大學(xué)威海分校,內(nèi)蒙古職業(yè)技術(shù)學(xué)院,青島大學(xué),西安外事學(xué)院,西安航空旅游職業(yè)學(xué)院,山西大學(xué),天津理工大學(xué),和河北工業(yè)大學(xué),秦皇島衛(wèi)校,北京交通職業(yè)運(yùn)輸學(xué)院,北戴河海事學(xué)校,湖南交通職業(yè)學(xué)院36路,貴陽亞太學(xué)院,吉林農(nóng)業(yè)科技學(xué)院, 姜堰三水學(xué)校, 淮北師范學(xué)校,河源中學(xué),安徽醫(yī)科大學(xué),延安大學(xué)創(chuàng)新學(xué)院,西安思源學(xué)院,陜西航空旅游學(xué)院,長春師范大學(xué),北京十四中,揚(yáng)州儀征師范,江蘇儀征職業(yè)技術(shù)學(xué)院,南京審計學(xué)院,江蘇射陽中學(xué),內(nèi)蒙古錫盟6中,甘肅平?jīng)鲆恢小?/p>
2、企業(yè)類:
遼寧油田,大唐熱電,張家口卷煙廠,石家莊市政府,塘沽口岸,北京市朝陽區(qū)勞動局,包頭少年宮,北京市國土資源局,北京劍江制衣,河北昌黎宏信鋼廠,河北唐山聯(lián)通總部,張家港科技園。
3、地鐵類:
北京地鐵9號線, 北京地鐵10號線, 北京地鐵4號線,北京地鐵5號線。
大連地鐵, 沈陽地鐵,鄭州地鐵。東莞地鐵,青島地鐵。
第五篇:控制器市場分析
控制器市場分析
控制器作為電動車的主要的關(guān)鍵零部件,他們之間是完全互補(bǔ)品的關(guān)系,電動車控制器的需求不僅僅來自于新增產(chǎn)能的零配件市場,同時也有來自與維修市場,根據(jù)慣例,電動車控制器在維修市場的需求大概為存量的5%-10%。因此總的市場需求量考慮到電動車的使用壽命,進(jìn)入維修市場的電動車的存量應(yīng)該為前五年市場銷量之和5%-10%?;谝韵聨c(diǎn)我國的自動控制器的裝配自行車年均增長10%。
1、根據(jù)我國2010年的產(chǎn)業(yè)政策規(guī)劃,本將出臺相關(guān)的行業(yè)政策和行業(yè)標(biāo)準(zhǔn),政策逐步明朗。
2、我國在2010年將電動自行車列為了家電鄉(xiāng)下的補(bǔ)貼電器之一。因此此舉將大幅促進(jìn)我國電動自行車在農(nóng)村市場的消費(fèi)。
3、國內(nèi)電動車控制器呈兩極分化發(fā)展趨勢,以高標(biāo)科技為首的品牌化發(fā)展之路,面向中高端市場,推出高質(zhì)量、高科技、高水準(zhǔn)的產(chǎn)品,在市場經(jīng)濟(jì)中性價比極高;以一些雜牌為主,價格低廉,產(chǎn)品質(zhì)量沒有固定標(biāo)準(zhǔn),生產(chǎn)成本極低,以低價格的優(yōu)勢在市場上占據(jù)一定份額。
3、我國2010年上半年的數(shù)據(jù)顯示我國在上半年電動自行車產(chǎn)量同比增長
8.9%。
4、今后三年內(nèi)電動車由于產(chǎn)品升級也逐步進(jìn)入更新?lián)Q代期,同時產(chǎn)業(yè)升級主要關(guān)鍵部件的升級如控制器、動力電源、電機(jī)的升級,解決產(chǎn)業(yè)困局,控制器等關(guān)鍵技術(shù)的升級至關(guān)重要。