<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于CAN-bus 總線的模擬空調(diào)溫/濕度控制系統(tǒng)

          基于CAN-bus 總線的模擬空調(diào)溫/濕度控制系統(tǒng)

          作者: 時(shí)間:2012-07-11 來源:網(wǎng)絡(luò) 收藏

          “計(jì)算控制室的溫度SV”的執(zhí)行條件是!BitAnd(!BitRShift(In_ID,3),127)=RoomID表達(dá)式的值為非0,腳本程序如下:

          Byte0=In_Data0
          Byte1=In_Data1
          Byte2=In_Data2
          Byte3=In_Data3
          !setstgy(UniteFloat)
          roomtempsv=float

          “計(jì)算控制室的濕度SV”的執(zhí)行條件是!BitAnd(!BitRShift(In_ID,3),127)=RoomID表達(dá)式的值為非0,腳本程序如下:

          Byte0=In_Data4
          Byte1=In_Data5
          Byte2=In_Data6
          Byte3=In_Data7
          !setstgy(UniteFloat)
          roomhumsv=float

          4.在運(yùn)行策略中新建名為“查詢房間1SV值”的用戶策略,添加如下圖所示的3個(gè)策略行。

          查詢房間1SV值策略
          圖10查詢房間1SV值策略

          “before”策略行腳本程序如下:

          !EnableStgy(查詢各控制室溫/濕度策略,0)
          RoomID=1

          “策略調(diào)用”調(diào)用GetRoomSV策略。
          “after”策略行腳本程序如下:

          room1tempsv=roomtempsv
          !EnableStgy(查詢各控制室溫/濕度策略,1)

          5.重復(fù)步驟4。添加“查詢房間2~6SV值”和“查詢風(fēng)道溫/濕度表1~2sv值”策略,并由菜單“修改1~6號(hào)房間SV值”調(diào)用對應(yīng)的策略。

          6.雙擊主控窗口中名為“修改一號(hào)房間SV值”的菜單項(xiàng),在菜單屬性設(shè)置對話框的“菜單操作”頁中添加執(zhí)行運(yùn)行策略塊“查詢房間1SV值”。

          7.重復(fù)步驟6,添加其它房間的運(yùn)行策略。

          8.在運(yùn)行策略中建立一個(gè)名為“SetRoomTSV”的用戶策略,添加以下腳本程序:

          float=roomtempsv
          !setstgy(SplitFloat)
          ‘發(fā)送控制室溫/濕度SV設(shè)置命令
          Out_Extern=0
          Out_Remote=0
          Out_ID=!BitLShift(RoomID,3)+0‘控制室ID+單幀(點(diǎn)對點(diǎn))
          Out_DataLen=8
          Out_Data0=0
          Out_Data1=0
          Out_Data2=0
          Out_Data3=2
          Out_Data4=Byte0
          Out_Data5=Byte1
          Out_Data6=Byte2
          Out_Data7=Byte3
          !setstgy(ObjectToString)
          ‘發(fā)出命令
          Out_CANData=Out_CANData2
          ‘等待命令發(fā)出
          !TimerReset(1,0)
          !TimerRun(1)
          !TimerWaitFor(1,Delay)
          !TimerStop(1)

          9.在運(yùn)行策略中建立一個(gè)名為“調(diào)整房間1SV值”的用戶策略,并添加以下程序:

          !EnableStgy(查詢各控制室溫/濕度策略,0)
          RoomID=1
          roomtempsv=room1tempsv
          float=roomtempsv
          !setstgy(SetRoomTSV)
          !EnableStgy(查詢各控制室溫/濕度策略,1)

          10.重復(fù)步驟9,添加其它5個(gè)控制室及風(fēng)道的腳本程序。

          11.給“修改控制室1SV值”窗口的“確認(rèn)”按鈕添加如下腳本:

          ifroom1tempsv1-10orroom1tempsv1>100then
          !setwindow(修改SV值消息窗口,1)
          else
          room1tempsv=room1tempsv1
          !setwindow(修改控制室1SV值,3)
          room1tempsv1=0
          !setstgy(調(diào)整房間1SV值)
          endif

          12.重復(fù)步驟11,添加其它窗口的腳本。

          六模擬控制室

          本系統(tǒng)可用DP-668實(shí)驗(yàn)儀模擬產(chǎn)生控制室數(shù)據(jù)。DP-668實(shí)驗(yàn)儀具有模擬控制室溫/濕度變化、自修改溫/濕度SV值以及報(bào)警等功能。其模擬溫/濕度變化算法如下:

          externunsignedcharcodeRoomID=1;/*房間ID*/
          externfloatRoomTemp=0;/*房間溫度*/
          externfloatRoomHumi=0;/*房間濕度*/
          ...

          floatcodeRoomTempTab[]={
          19.0,19.2,19.4,19.6,19.8,
          20.0,20.2,20.4,20.6,20.8,
          21.0,21.2,21.4,21.6,21.8,
          21.8,21.6,21.4,21.2,21.0,
          20.8,20.6,20.4,20.2,20.0,
          19.8,19.6,19.4,19.2,19.0
          };
          floatcodeRoomHumiTab[]={
          55.0,55.5,56.0,56.5,
          57.0,57.5,58.0,58.5,
          59.0,59.5,60.0,60.5,
          61.0,61.5,62.0,62.5,
          63.0,63.5,64.0,64.5
          };
          voidmain(void)

          unsignedintidatai,j;
          ...

          while(1)

          /*模擬溫/濕度變化*/
          RoomTemp=RoomTempTab[j%(sizeof(RoomTempTab)/sizeof(RoomTempTab[0]))];
          RoomHumi=RoomHumiTab[j++%(sizeof(RoomHumiTab)/sizeof(RoomHumiTab[0]))];
          ...


          本系統(tǒng)也可用任一款ZLGCAN接口卡和PC組成的系統(tǒng)來模擬產(chǎn)生控制室數(shù)據(jù),基于ZLGCAN通用函數(shù)接口編程,同樣具有模擬控制室溫/濕度變化、自修改溫/濕度SV值以及報(bào)警等功能。其模擬溫/濕度變化算法(VC示范)如下:

          floatm_dwTemp[8];//房間16及風(fēng)道12的溫度
          floatm_dwHumi[8];//房間16及風(fēng)道12的濕度
          ...

          staticdoublei;
          i+=0.1;
          m_dwTemp[0]=(float)sin(i+0.0)+20;
          m_dwTemp[1]=(float)sin(i+0.1)+20;
          m_dwTemp[2]=(float)sin(i+0.2)+20;
          m_dwTemp[3]=(float)sin(i+0.3)+20;
          m_dwTemp[4]=(float)sin(i+0.4)+20;
          m_dwTemp[5]=(float)sin(i+0.5)+20;
          m_dwTemp[6]=(float)sin(i+0.6)+20;
          m_dwTemp[7]=(float)sin(i+0.7)+20;

          m_dwHumi[0]=(float)cos(i+0.0)+60;
          m_dwHumi[1]=(float)cos(i+0.1)+60;
          m_dwHumi[2]=(float)cos(i+0.2)+60;
          m_dwHumi[3]=(float)cos(i+0.3)+60;
          m_dwHumi[4]=(float)cos(i+0.4)+60;
          m_dwHumi[5]=(float)cos(i+0.5)+60;
          m_dwHumi[6]=(float)cos(i+0.6)+60;
          m_dwHumi[7]=(float)cos(i+0.7)+60;
          ...


          上一頁 1 2 3 4 下一頁

          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();