過不斷的研究,我在2018年把IO模塊、時間繼電器、簡易PLC等產品的操作抽象提煉成幾個基本指令,通過基本指令的組合實現靈活多變的功能,比如:邏輯控制、日歷定時、延時控制、遠程控制等。
使用原生的css,javascript,html等語言設計網頁提供指令組合設置的界面,在MCU中基于TCP協議實現了簡易的HTTP服務器,將靜態頁面下載到MCU內部的flash,通過ajax技術實現瀏覽器與MCU程序的實時數據交互。
在RAM為48kByte,ROM為256kByte的STM32F103處理器上實現了內置網頁中文編程的功能;
最終用戶不需要安裝軟件,只需要用手機或者電腦打開設備的內置網頁就可以實現簡易編程。
這是我們產品最重大的創舉,經過這幾年的使用,客戶反饋了一些易用性的問題,準備接下來進一步優化;
1.1. 輸出
[指令描述]
控制繼電器或三極管Y00-Y15的輸出,共16個參數可供選擇,每一個參數對應一路輸出;
[指令參數]
第1個參數-第16個參數:“閉合”-繼電器閉合或者三極管輸出“地”;“斷開”-斷電器斷開或者三極管不輸出”地“;“翻轉”-繼電器或三極管由現在的輸出狀態翻轉到相反的狀態;“不動作”-繼電器或三極管保持當前的狀態
[設置界面]
圖1.1. 設置界面-輸出
[說明]
(1) 每一路輸出均可單獨設置
(2) 0-15分別對應Y00-Y015
1.2. 變量計算
[指令描述]
對編號為00-499的IO模塊內部變量進行計算(共500個變量);
[指令參數]
第1個參數:需要進行計算的IO模塊內部變量的編號,0-499可以選擇,假設為x;
第2個參數:計算方式,有“=”、“+”,“-”,“X”,“/”可以選擇;
第3個參數:為0-99999之間的任意數字,假設選為n:
1) 如果第2個參數選擇為”=”,則由第1個參數選擇的變量x等于第3個參數選擇的數字,即Vx=n;
2) 如果第2個參數選擇為”+”, 則由第1個參數選擇的變量x加上第3個參數選擇的數字,即Vx=Vx+n;
3) 如果第2個參數選擇為”-“, 則由第1個參數選擇的變量x減去第3個參數選擇的數字,即Vx=Vx-n;
4) 如果第2個參數選擇為”X”, 則由第1個參數選擇的變量x乘以第3個參數選擇的數字,即Vx=Vx*n;
5) 如果第2個參數選擇為”/”, 則由第1個參數選擇的變量x除以第3個參數選擇的數字,即Vx=Vx/n;
6) 如果第2個參數選擇為”=V”,則由第1個參數選擇的變量x等于第3個參數選擇的數字,即Vx=Vn;
7) 如果第2個參數選擇為”+V”, 則由第1個參數選擇的變量x加上第3個參數選擇的數字,即Vx=Vx+Vn;
7) 如果第2個參數選擇為”-V”, 則由第1個參數選擇的變量x減去第3個參數選擇的數字,即Vx=Vx-Vn;
8) 如果第2個參數選擇為”XV”, 則由第1個參數選擇的變量x乘以第3個參數選擇的數字,即Vx=Vx*Vn;
9) 如果第2個參數選擇為”/V”, 則由第1個參數選擇的變量x除以第3個參數選擇的數字,即Vx=Vx/Vn;
[設置界面]
圖1.2. 設置界面-變量計算
[說明]
1.3. 計時器控制
[指令描述]
開啟/停止/暫停/繼續編號為0-19的計時器(共20組計時器,計時器的時間精度為0.1秒);
[指令參數]
參數1為計時器編號,可以輸入0-19的數字,假設輸入為xx;
參數2為操作類型,“停止”、“暫停”、“啟動”、“繼續”可以選擇;
1) 如果參數2選擇為“停止”,則第xx個計時器Txx結束計時,并把計時的時間刪除;
2) 如果參數2選擇為“暫停”,則第xx個計時器Txx結束計時,但是計時的時間并不刪除
3) 如果參數2選擇為“啟動”,則第xx個計時器Txx開始計時,但是計時的時間從零開始
4) 如果參數2選擇為“繼續”,則第xx個計時器Txx開始計時,但是計時的時間從目前保存的時間繼續
[設置界面]
圖1.3. 設置界面-計時器設置
[說明]
1.4. 計時判斷
[指令描述]
當編號為0-19的計時器與設定的時間相比滿足指定的條件時,程序執行某一項操作,否則根據參數7所設置的跳轉方式,在這一條指令等待或者跳轉至下一條指令執行;
[指令參數]
參數1為計時器編號,可以輸入0-19的數字,假設輸入為xx;
參數2為計時器的比較條件,有“>”,“<”, “>=”, “<=”, “=”幾種比較條件可以選擇;
參數3-6為設置的時間,其中:參數3為小時,可以輸入0-99的數字;參數4為分鐘,可以輸入0-59的數字;參數5為秒,可以輸入0-59的數字;參數6為0.1秒,可以輸入0-9的數字;,假設設置的時間為T;
參數7為跳轉方式:可以選擇“執行”、“等待執行”,“執行”表示如果不滿足條件,則跳過這一條指令至下一條執;否則在當前指令等待,直至滿足判斷條件為止;
如果滿足計時判斷的條件,則根據參數8之后的設置,執行某一項操作;
[設置界面]
圖1.4. 設置界面-計時判斷
1.5. 變量判斷
[指令描述]
當編號為0-199的變量與設定的變量或者常數相比滿足指定的條件時,程序執行某一項操作,否則根據參數5所設置的跳轉方式,在這一條指令等待或者跳轉至下一條指令執行;
[指令參數]
參數1為變量編號,可以輸入0-249的數字,假設輸入為xx;
參數2為變量或者常數的比較條件,有“>”,“<”, “>=”, “<=”, “=”幾種比較條件可以選擇;
參數3為變量或者常數的選項,如果參數3選擇為常數,則參數4表示常數的數值;如果參數3選擇為變量,則參數4表示變量編號;
參數4為變量的編號或者是常數的數值,如果參數3選擇為常數,則參數4表示常數的數值;如果參數3選擇為變量,則參數4表示變量編號;
參數5為跳轉方式:可以選擇“執行”、“等待執行”,“執行”表示如果不滿足條件,則跳過這一條指令至下一條執行;否則在當前指令等待,直至滿足判斷條件為止;
如果滿足變量判斷的條件,則根據參數6之后的設置,執行某一項操作;
[設置界面]
圖1.5. 設置界面-變量判斷
[說明]
1.6. 輸入判斷
[指令描述]
當IO模塊的輸入或者輸出滿足設置的條件時,程序執行某一項操作,否則根據參數4所設置的跳轉方式,在這一條指令等待或者跳轉至下一條指令執行;
[指令參數]
參數1為輸出或者輸入的選項,有“X”、“Y”兩種不同的選項,如果選為“X”,則表示IO模塊的輸入X0-X07與設定的條件進行比較;如果選為“Y”,表示IO模塊的輸出Y0-Y07與設定的條件進行比較;
參數2為輸入X或者輸出Y的編號,如果參數1選為”X”,參數2表示輸入的編號,可以輸入0-7;如果參數1選為“Y”,參數2表示輸出的編號,可以輸入0-7;
參數3為輸入X或者輸出Y的比較條件,有“高”,“低”,“上跳”,“下跳”四種不同的選項;
如果參數1選為“X”,“高”表示有輸入信號,“低”表示沒有輸入信號,“上跳”表示從沒有輸入信號轉變為有輸入信號,“下跳”表示從有輸入信號轉變為沒有輸入信號;
如果參數1選為“Y”,“高”表示繼電器或者三極管輸出閉合,“低”表示繼電器或者三極管輸出斷開,“上跳”表示繼電器或者三極管輸出由斷開轉變為閉合,“下跳”表示斷電器或者三極管輸出由閉合轉變為斷開; 參數4為跳轉方式:可以選擇“執行”、“等待執行”,“執行”表示如果不滿足條件,則跳過這一條指令至下一條執;否則在當前指令等待,直至滿足判斷條件為止;
如果滿足輸出或者輸入判斷的條件,則根據參數5之后的設置,執行某一項操作;
[設置界面]
圖1.6. 設置界面-輸入判斷
[說明]
1.7. 數值判斷
[指令描述]
當編號為0-1的信號采樣輸入的采樣值與設定的數字相比滿足指定的條件時,程序執行某一項操作,否則根據參數4所設置的跳轉方式,在這一條指令等待或者跳轉至下一條指令執行。
[指令參數]
參數1為信號采樣輸入的編號,可以輸入0-1的數字,假設選為xx;
參數2為比較條件,可以選擇“>”,“<”, “>=”, “<=”, “=”;
參數3為要比較的數字,可以輸入任何數字;
參數4為跳轉方式:可以選擇“執行”、“等待執行”,“執行”表示如果不滿足條件,則跳過這一條指令至下一條執;否則在當前指令等待,直至滿足判斷條件為止;
如果滿足信號采樣輸入數值判斷的條件,則根據參數5之后的設置,執行某一項操作;
[設置界面]
圖1.7. 設置界面-數值判斷
[說明]
1.8. 定時-按日期循環判斷
[指令描述]
如果日期滿足由參數2-參數8設定的指定工作日時,如果當前時間為由參數9-參數11以及參數12-參數14之間所設定的時間(小時:分鐘:秒),程序執行某一項操作,否則根據參數15所設置的跳轉方式,在這一條指令等待或者跳轉至下一條指令執行;
[指令參數]
參數2-參數8為設定的工作日,通過打勾進行選擇;
參數9-參數11表示格式為小時:分鐘:秒的時間;
參數12-參數14表示格式為小時:分鐘:秒的時間;
參數15為跳轉方式:可以選擇“執行”、“等待執行”,“執行”表示如果不滿足條件,則跳過這一條指令至下一條執;否則在當前指令等待,直至滿足判斷條件為止;
如果滿足日期、時間判斷的條件,則根據參數13之后的設置,執行某一項操作;
[設置界面]
圖1.8. 設置界面-按日期循環判斷
[說明]
1.9. 定時-按小時循環判斷
[指令描述]
如果日期滿足由參數2-參數8設定的指定工作日時,如果當前時間為由參數9-參數10以及參數11-參數12之間所設定的時間(分鐘:秒),程序執行某一項操作,否則根據參數13所設置的跳轉方式,在這一條指令等待或者跳轉至下一條指令執行;
[指令參數]
參數2-參數8為設定的工作日,通過打勾進行選擇;
參數9-參數10表示格式分鐘:秒的時間;
參數11-參數12表示格式分鐘:秒的時間;
參數13為跳轉方式:可以選擇“執行”、“等待執行”,“執行”表示如果不滿足條件,則跳過這一條指令至下一條執;否則在當前指令等待,直至滿足判斷條件為止;
如果滿足日期、時間判斷的條件,則根據參數12之后的設置,執行某一項操作;
[設置界面]
圖1.9. 設置界面-按小時循環判斷
[說明]
1.10. 延時
[指令描述]
在當前步驟等待由參數1-參數4所設定的時間,之后跳轉至下一步驟執行;
[指令參數]
參數1-4為設定的時間,參數1為小時,可以輸入0-9999之間的數字;
參數2為分鐘,可以輸入0-59之間的數字;
參數3為秒,可以輸入0-59之間的數字;
參數4為0.01秒,可以輸入0-9之間的數字;
[設置界面
圖1.10. 設置界面-延時
[說明]
1.11. 跳轉
[指令描述]
程序跳轉至參數1設定的步驟執行;
[指令參數]
參數1為跳轉的步驟編號,0-63可選;
[設置界面]
圖1.11. 設置界面-跳轉
[說明]
1.12. 調用
[指令描述]
控制Z00-Z23程序組;
[指令參數]
參數1為程序組的編號,可輸入0-23之間的數字;
參數2為程序組的執行方式,“重啟”,“繼續”,“暫停”,“停止”可以選擇,“重啟”表示參數1所選擇的程序組從P00開始執行,“繼續”表示參數1所選擇的程序組從現在所在的指令繼續往下運行,“暫停”表示參數1所選擇的程序組停止執行,但是不跳轉回P00的指令位置,“停止”表示參數1所選擇的程序組停止執行,而且跳轉回P00的指令位置。
[設置界面]
圖1.12. 設置界面-調用
[說明]
1.13. 事件
[指令描述]
控制參數1指定的事件捕捉器,如果啟動,一旦捕捉到參數3設定的輸入事件,則將參數5設定的變量置為1;
[指令參數]
參數1為事件捕捉器編號,0-499可選,假設選為Exx;
參數2為事件捕捉器控制類型,啟動/停止可選,如果選為“啟動”,則開始捕捉器,否則停止捕捉器;
參數3為輸入編號,0-15可選,假設選為Xxx;
參數4為輸入事件類型,“ ”,“ ”, “ ”, “ ”可選,分別表示為輸入高、輸入低、上升沿、下降沿;
參數5為變量編號,0-499可選,假設選為Vxx;
[設置界面]
圖1.13. 設置界面-事件
天做一個投票系統,彈出對話框,要在提交信息里包含被投票人的id號,但是又是在一個頁面里彈出一個兌換狂沒有轉換頁面,用js設置input值,
在頁面中 onClick="show('要顯示的div的id號,'要傳遞的參數值')"
在js頁面設置
document.getElementById("input的id").value=傳遞過來的參數值;
從網上找的有
document.getElementById("input的id").value=傳遞過來的參數值.value;
但是不行
)HTML標簽
1.1 雙標簽有:<html></html>,<head></head><title></title>等
1.2 單標簽有:<br/>,<hr/>,<img/>等
2標簽屬性
標簽的屬性現在暫時寫在標簽內,其格式為 屬性名="屬性值"
屬性值:HTML中屬性值既可以用單引號括起來,也可以用雙引號括起來或者不用引號都可以(不推薦)單雙引號一定要配對出現
3)HTML注釋: HTML與XML一樣使用<!-- 注釋內容 -->來做注釋
4)常見標簽
1) meta: meta標簽需要寫在head標簽中,meta屬性及值有兩種寫法
1.1 指定name:<meta name=“名字” content=“值” />網頁的描述信息。
比如:<meta name=“keywords” content=“網頁關鍵詞,有助于SEO”/>
1.2 指定http-equiv:<meta http-equiv="名字" content="值" />模擬http響應頭信息。
比如:<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />指定網頁編碼,防止網頁中的中文出現亂碼
2)h1-h6標簽一般用于標題,表示字體的大小,h1最大h6最小,有助于SEO
3)<p></p>與<br/>標簽 作用都是換行
<p>標簽前后會有比較大的空白一般用于段落,<br/>標簽只是換行
4)<center></center>使頁面內容居中顯示
5)<b>文字顯示為粗體</b>與<strong>文字顯示為粗體粗體(推薦)</strong>
6)<i>文字顯示為斜體</i> 7)<u>文字帶下劃線</u> 8)<em>文字顯示為斜體</em>
9) <sup>2</sup>上標,比如10的平方:10<sup>2</sup>
<sub>2</sub>下標,比如水的化學式:H<sub>2</sub>O
10)<pre></pre> 預格式化可以在頁面原樣輸出
<!DOCTYPE html>
<html>
<head>
<title>常見標簽與屬性</title>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
</head>
<body>
<h1>預祝大家虎年快樂</h1>
<h2>預祝大家虎年快樂</h2>
<h3>預祝大家虎年快樂</h3>
<h4>預祝大家虎年快樂</h4>
<h5>預祝大家虎年快樂</h5>
<h6>預祝大家虎年快樂</h6>
致敬所有抗疫人員<br />
你們辛苦了!!!<br />
<p>致敬所有邊防軍人,消防員,警察等</p>
<p>祝你們虎年快樂,身康體健</p>
<center>居中顯示</center>
<b>文字顯示為粗體</b>與<strong>文字顯示為粗體粗體(推薦)<strong/><br>
<i>文字顯示為斜體</i>與<em>文字顯示為斜體(推薦)</em> <u>文字帶下劃線</u><br/>
10<sup>2</sup> <br/><!--水的化學式-->
H<sub>2</sub>O <br/><!--10的平方-->
<pre>
葡萄美酒夜光杯,欲飲琵琶馬上催。
醉臥沙場君莫笑,古來征戰幾人回?
</pre>
</body>
</html>
顯示效果
*請認真填寫需求信息,我們會在24小時內與您取得聯系。