整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:

一套独创的基于控制器内置网页的中文编程方法和指令

一套独创的基于控制器内置网页的中文编程方法和指令

过不断的研究,我在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>

显示效果