<?xml version="1.0" encoding="UTF-8" ?>



<rss version="2.0" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">

<channel>
<title><![CDATA[我的工控人生]]> </title>
<description>
<![CDATA[可能一辈子和工控自动化打交道了！
喜欢那种完成项目后的成就感！]]>
</description>
<link>http://wyqbtbu.blog.bokee.net/</link>
<language>zh-cn</language>
<creator>wyqbtbu</creator>
<pubDate>Thu, 15 Jun 2006 16:08:58 CST </pubDate>
<generatorAgent rdf:resource="http://www.bokee.net"/>
<ttl>5</ttl>

<item>
<title>使用美国A-B的Micro Logic 1500 TM 为INTEL做锅炉控制器</title>
<link>http://www.bokee.net/blogmodule/weblogcomment_viewEntry/152167.html</link>
<description>
<![CDATA[<div align="center"><strong>INTEL</strong><strong>控制柜设计说明</strong></div>
<div>&nbsp;</div>
<div><strong>1．</strong><strong>锅炉控制器选用A-B ML1500</strong><strong>系列可编程控制器</strong></div>
<div>&nbsp;</div>
<div><strong>2．</strong><strong>每台选用主要A-B ML1500</strong><strong>部件：</strong></div>
<div>1764-24BWA<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>基板</div>
<div>1764-LRP<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CPU</span></div>
<div>1769-IR6<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;</span>温度模拟量输入模块</div>
<div>1769-ECR<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;</span>盖板</div>
<div>2711-K3A171<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;</span>人机界面</div>
<div>1761-CBL-PM02<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>编程电缆</div>
<div>2711-NC21<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>连接电缆</div>
<div>2711-NC13<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>下载电缆</div>
<div>&nbsp;</div>
<div><strong>3．</strong><strong>通讯协议</strong></div>
<div>标准MODBUS&nbsp;RTU slave ，19200 bps ， none</div>
<div>&nbsp;</div>
<div><strong>4．<span><font size="3"> </font></span></strong><strong>I/O&nbsp;LIST</strong></div>
<div>出水温度<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; hot water supply temperature&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; N7:0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>数据</div>
<div>回水温度<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; hot water return temperature&nbsp;&nbsp; N7:1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>数据</div>
<div>压力高<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; pressure high&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; B3:0/3&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>状态点ON有效</div>
<div>水位低<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; low water level&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; B3:0/5&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>状态点ON有效</div>
<div>燃烧器状态<span>&nbsp;&nbsp;&nbsp; burner on&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; B3:1/10&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>状态点ON有效</div>
<div>锅炉故障<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; boiler trip&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; B3:1/9&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>状态点ON有效</div>
<div>自动/手动状态 auto/manual status<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; B3:1/3&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>状态点ON手动、OFF自动 </div>
<div>启动<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; start&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; B3: 2/4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>控制点ON有效</div>
<div>停止<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; stop&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; B3: 2/4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>控制点OFF有效</div>
<div>&nbsp;</div>
<div><strong>5．</strong><strong>输出到BMS</strong><strong>的控制点<span>&nbsp;&nbsp; I/O control points available for out put to BMS</span></strong></div>
<div>出水温度<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; hot water supply temperature</span></div>
<div>回水温度<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; hot water return temperature</span></div>
<div>压力高<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; pressure high</span></div>
<div>水位低<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; low water level</span></div>
<div>燃烧器状态<span>&nbsp;&nbsp;&nbsp; burner on</span></div>
<div>锅炉故障<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; boiler trip</span></div>
<div>自动/手动状态 auto/manual status</div>
<div>启动<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; start</span></div>
<div>停止<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; stop</span></div>
<div>&nbsp;</div>
<div>&nbsp;</div>
<div>不需要启动锅炉的控制点</div>
<div>there is not I/O control point required by hot water boiler to startup</div>
<p>选用A-B的Micro Logic 1500 TM 和PV300，为锅炉做控制和显示。</p>
<p>选用JUMO的温度变送器，用铂电阻模块采集，程序用模拟的PID来控制风门大小。</p>
<p>提供以下控制流程：<img height="690" width="500" alt="" src="/userfilemodule/download.do?action=reference&amp;id=61908&amp;bokeeName=wyqbtbu" /></p>
<p>&nbsp;</p>]]>
</description>
<guid isPermaLink="false">http://www.bokee.net/blogmodule/weblogcomment_viewEntry/152167.html</guid>
<subject></subject>
<author>wyqbtbu</author>
<category></category>
<pubDate>Thu, 15 Jun 2006 22:13:53 CST </pubDate>
</item>

<item>
<title>使用SN与变频器的MODBUS通讯说明 </title>
<link>http://www.bokee.net/blogmodule/weblogcomment_viewEntry/152140.html</link>
<description>
<![CDATA[<p align="left"><font face="宋体" size="2">现在使用两种变频器实验，台达VFD-B和施耐德ATV-31。<br />一、 台达VFD-B for MODBUS ASCII<br />1、 VFD-B系列变频器通讯默认参数：地址01，9600、N、7、2 for ASCII<br />2、 通讯格式：<br />STX（1）+ADD（2）+FUN（2）+DATA（2n）+LRC（2）+END（2）<br />3、 程序中使用：<br />写频率（2001）： <br /></font><font face="宋体" size="2"><img alt="" src="http://www.gongkong.com/papers/pic/paper_2198_1.jpg" /><br /></font><font face="宋体" size="2">LRC由ADD到DATA每2位之和，然后取补<br />LRC=100-(01+06+20+01+07+D0)=01(HEX)<br />以上为写频率，DATA2为变量，在程序中比较复杂。<br /><br />修改参数（GGnn）：<br />00-03 开机显示，要求显示输出频率，改为01<br />02-00 频率来源，要求要来源自485，改为05<br />-01 485通讯可操作键盘STOP， 改为03<br />-02 停车时是自由停车 改为01<br /></font><font face="宋体" size="2"><img alt="" src="http://www.gongkong.com/papers/pic/paper_2198_2.jpg" /><br /></font><br /><font face="宋体" size="2">LRC1=100-（01+06+00+03+00+01）=F5<br />LRC2=100-（01+06+02+00+00+05）=F2<br />LRC3=100-（01+06+02+01+00+03）=F3<br />LRC4=100-（01+06+02+02+00+01）=F4<br /><br />设置功能：启动、点动、停止（2000位操作），复位（2002位操作）<br /></font><font face="宋体" size="2"><img alt="" src="http://www.gongkong.com/papers/pic/paper_2198_3.jpg" /><br /></font><br /><font face="宋体" size="2">LRC1=100-（01+06+20+00+00+01）=D8<br />LRC2=100-（01+06+20+00+00+02）=D7<br />LRC3=100-（01+06+20+00+00+03）=D6<br />LRC4=100-（01+06+20+02+00+02）=D5<br /><br />二、 施耐德ATV-31 for MODBUS RTU<br />1、 VFD-B系列变频器通讯默认参数：地址01，19200、E、8、1 for RTU<br />2、 通讯格式：<br />Add(2)+Fun(2)+ first no.( 4)+words(4)+bytes(2)+crc16(4)<br />都是十六进制方式<br />功能码有03(&amp;H03)、06(&amp;H06)、43(&amp;H2B)、16(&amp;H10)<br /></font><font face="宋体" size="2"><img alt="" src="http://www.gongkong.com/papers/pic/paper_2198_4.jpg" /><br /></font><br /><font face="宋体" size="2">CRC比较难算：<br />从ADD开始到CRC之前的所有数据，每两个字节分开<br />1) 用&amp;HFFFF与第一组的两个字节异或存到CRC中。<br />2) 取新的CRC右移一位，重新存于CRC中。<br />3) 如果右移出的一位为1，则新的CRC与&amp;HA001异或，结果存于CRC中；如果为零则不变。<br />4) 重复2)、3)，共8次，就是说得向右移出一个字节(8位)。<br />5) 新的CRC与下一组两个字节异或，重复2)、3)、4)，直到最后一组做完，把CRC的前两个字节与后两个字节交换，就是最后CRC16。<br />6) 注意：1个字=2个字节=16位<br />PLC的一个寄存器中一般存储的是2个字节的ASCII码，例如3130，表示为01，从低位到高位，不能混淆。<br /><br />三、 台达VFD-B for MODBUS RTU<br />1、 VFD-B系列变频器更改通讯参数：地址01，9600、N、7、2 for RTU<br />2、 通讯格式：<br />Add(1)+Fun(1)+ first no.( 2)+words(2)+bytes(1)+crc16(2)<br />都是十六进制方式<br />功能码有03、06、08、10<br /></font><font face="宋体" size="2"><img alt="" src="http://www.gongkong.com/papers/pic/paper_2198_5.jpg" /><br /></font><br /><font face="宋体" size="2">CRC比较难算：<br />与上述施耐德计算相同<br /><br />四、 PLC的MODBUS协议<br />在SN中配置了MODBUS RTU，格式如下：<br />Add(1)+Fun(1)+ first no.( 2)+words(2)+bytes(1)+crc16(2)<br />写数据功能码一般只能使用16(&amp;H10)<br />读数据功能码一般只能使用03(&amp;H03)<br />所以具体使用的MODBUS RTU ：<br />Add(2)+Fun(2)+ first no.( 4)+words(4)+bytes(2)+crc16(4)<br /></font><font face="宋体" size="2"><img alt="" src="http://www.gongkong.com/papers/pic/paper_2198_6.jpg" /><br /></font><br /><font face="宋体" size="2">功能码和校验码都不用设置，如图以写为例：<br /><img align="left" alt="" src="http://www.gongkong.com/papers/pic/paper_2198_7.jpg" /></font></p>
<p align="left"><font face="宋体" size="2"></font></p>
<p align="left"><font face="宋体" size="2">设置485口为MODBUS协议。<br /><br /></font></p>
<p align="left"><font face="宋体" size="2">设置端口通讯格式:19200，E，8，1<br /><br /></font></p>
<p align="left"><font face="宋体" size="2">确认设置。</font></p>
<p align="left"><font face="宋体" size="2">（在程序开头，只需初始配置一次。）<br /><br />进行通讯的命令，1秒的脉冲<br /><br /></font></p>
<p align="left"><font face="宋体" size="2">用端口1向地址02发送数据<br /><br />字节数为02，为1个字<br /><br />PLC内数据交换用R2000 <br /><br />对方数据交换为20001(8进制数)<br /></font></p>
<p align="left"><font face="宋体" size="2">读数据为RX命令<br />读数据与写数据基本类似。<br /></font><font face="宋体" size="2"></font></p>]]>
</description>
<guid isPermaLink="false">http://www.bokee.net/blogmodule/weblogcomment_viewEntry/152140.html</guid>
<subject></subject>
<author>wyqbtbu</author>
<category></category>
<pubDate>Thu, 15 Jun 2006 21:43:29 CST </pubDate>
</item>

<item>
<title>中达电通PLC与松下变频器通讯实例</title>
<link>http://www.bokee.net/blogmodule/weblogcomment_viewEntry/152134.html</link>
<description>
<![CDATA[<font face="宋体" size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 选用中达电通ES系列PLC，用通讯方式来改变松下VF0C系列变频器的设定频率，PLC端使用485口，无协议方式来模拟VF0C变频器的通讯协议。<br />　　<br />　　<strong>一、通讯协议</strong><br />　　VF0C系列变频器留有485通讯口，并提供内部通讯协议如下：<br />　　写：% [局号] #WD [功能号] [起始地址] [结束地址] [数据] [BCC] \CR<br />　　读：% [局号] #RD [功能号] [起始地址] [结束地址] [BCC] \CR<br />　　如果写正确，返回：%01$WD BCC\CR<br />　　如果读正确，返回：%01$RD [数据] BCC\CR<br />　　 分别规定了字节数，在以下表格以写数据为例做详细说明：<br />　　 </font><center><font face="宋体" size="2"><img alt="" src="http://www.gongkong.com/papers/pic/paper_2199_1.jpg" /><br />　　</font></center><br /><font face="宋体" size="2">　　　　在松下VF0C系列变频器中，局号默认为01，通讯格式为9600、N、8、1，通讯方式是ASCII方式，数据为十六进制，存储模式为8位模式。设定频率的地址是DT237，而读设定频率的地址为DT133，而且在DT237和DT133的数据都是以0.01Hz为单位的。下面以写频率为例，来做详细说明。<br />　　<br />　　<strong>二、实例说明</strong><br />　　　　假设要写入的频率是43.5Hz，那么需要写入的数值应为10FE（4350），变频器的存储模式为8位模式，应从低位开始写入，那么应该先写FE后写10。校验码是把从起始码到数据码所有的字节进行异或所得。<br />　　XOR：%01#WDD0023700237FE10=52（HEX）<br />　　那么得出以下所有通讯格式码：<br />　　%01#WDD0023700237FE1052\CR<br />　　　　通讯方式是ASCII方式，数据是十六进制格式，那么做以下转换，得出格式码：<br />　　　　把这些格式码按正确的次序发出，就可以把数据43.5HZ写入到变频器设定频率DT237中。<br />　　<br />　　<strong>三、梯形图</strong><br />　　　　在PLC中，无协议通讯也是从低位开始发送数据的，可选用8位模式和16位模式传送，不同就在于发送数据寄存器中的8位数据还是16位数据，在这里以16位模式做说明。梯形图如下：<br />　　　　把格式码数据253031235744443030323337303032333745463130520D按照从低位到高位的顺序依次存入到D0~D11中去，占用12个连续的数据寄存器，就是说有24个字节的数据。<br />　　设定通讯参数9600，N，8，1，ASCII方式，16位模式。<br />　　当M0接通一次，就可以发送一次数据，写一次频率。<br />　　 </font><center><font face="宋体" size="2"><img alt="" src="http://www.gongkong.com/papers/pic/paper_2199_2.jpg" /><br />　　</font></center><br /><font face="宋体" size="2">　　<br />　　<strong>四、程序优化</strong><br />　　　　如果再加上读频率的程序，就可以做成小闭环，完成读写频率的程序优化。<br />　　　　因为在写频率的数据发送成功后，可做延时3秒后读频率，在读成功以后，把读回的频率数据和要写入的频率数据做比较，如果相等，则通讯程序停止，如果不相等，再执行写频率&mdash;&mdash;&gt;读频率&mdash;&mdash;&gt;比较。<br />　　 </font><center><font face="宋体" size="2"><img alt="" src="http://www.gongkong.com/papers/pic/paper_2199_3.jpg" /><br /></font></center>]]>
</description>
<guid isPermaLink="false">http://www.bokee.net/blogmodule/weblogcomment_viewEntry/152134.html</guid>
<subject></subject>
<author>wyqbtbu</author>
<category></category>
<pubDate>Thu, 15 Jun 2006 21:37:22 CST </pubDate>
</item>

<item>
<title>光洋GC触摸屏和单片机通讯</title>
<link>http://www.bokee.net/blogmodule/weblogcomment_viewEntry/152120.html</link>
<description>
<![CDATA[<div align="left">摘要：</div>
<div>本文介绍了光洋电子GC系列触摸屏和单片机的通讯。主要是利用单片机来读写触摸屏的内部存储区。另外，还介绍了该GC系列触摸屏内带的K-BASIC语言编程，该语言具有功能强大、应用方便等特点。</div>
<div>关键词：</div>
<div>触摸屏、内部存储区、K-BASIC语言、通讯、冷媒体回收再生加注设备</div>
<div>&nbsp;</div>
<div><strong>一、引言</strong></div>
<div>随着我国机械装备、轻工业等行业的快速发展，小型控制设备也得到了发展，尤其是针对某个行业的专业控制器。目前市场上的这种专业控制器主要是以单片机为基础，用语言编程来直接面对单一的行业应用。以冷媒体回收再生加注设备的控制系统来说，模拟量路数比较多，数字控制点数比较少。这种用单片机开发的控制器，比较经济适用，而且占用空间少，对于手推式冷媒体回收再生加注设备更加适用。</div>
<div>笔者在参与某认证中心的新型手推式冷媒体回收再生加注设备的研制过程中，采用光洋电子（KOYO）的GC系列 触摸屏，用触摸屏对数据进行设置和显示，并对其少量的开关点进行智能控制。</div>
<div>&nbsp;</div>
<div><strong>二、工作原理及控制要求</strong></div>
<div>以R134A和R12双型冷媒体回收再生加注设备为例，其主要工作，就是对冷媒体进行回收和加注。回收就是对冷媒体抽真空，对其压力或重量进行实时监控；加注过程中也对压力和重量进行监控，并能对压力和重量的高低限报警。</div>
<div>&nbsp;</div>
<div>1．<span><font size="3">&nbsp;&nbsp;&nbsp; </font></span>当选择R134A，就只能对R134A进行加注或者回收，R12的加注和回收就不起作用。</div>
<div>同样，R12被选择时，就只能对R12进行加注或回收。</div>
<div>当按下加注或回收时，压缩机自动运行，并跳转到相应页面。</div>
<div><img height="240" alt="" width="320" src="/userfilemodule/download.do?action=reference&amp;id=61794&amp;bokeeName=wyqbtbu" />&nbsp;</div>
<div>2．<span><font size="3">&nbsp;&nbsp;&nbsp; </font></span>对加注（回收）的监控，显示压力、重量、回收（加注量），并能进行高压过高报警，和对原料罐的罐压过高进行报警。同时，显示真空泵和压缩机的运行状况。</div>
<div>可以对真空泵进行控制，并能清零压力值和重量值，建立加注或回收零点。</div>
<div>
<table cellspacing="1" cellpadding="1" width="200" summary="" border="1">
    <tbody>
        <tr>
            <td><img height="242" alt="" width="321" src="/userfilemodule/download.do?action=reference&amp;id=61803&amp;bokeeName=wyqbtbu" /></td>
            <td><img height="239" alt="" width="319" src="/userfilemodule/download.do?action=reference&amp;id=61812&amp;bokeeName=wyqbtbu" /></td>
        </tr>
    </tbody>
</table>
</div>
<div>3．用单片机对触摸屏进行读写。对于每一幅页面，把页面号写入到触摸屏的一个内部存储器例如MTBL（100），以便对于当前且仅当前页面上的所有数据进行读写，减少数据量的传送，缩短数据扫描时间。</div>
<div>&nbsp;</div>
<div><strong>三、</strong><strong>GC</strong><strong>内部存储区</strong></div>
<div><strong></strong>&nbsp;&nbsp;<span>&nbsp;&nbsp;&nbsp; </span>在GC触摸屏的内部存储区中，为数据的送受信准备了如下存储器表：</div>
<p>
<table style="WIDTH: 83px; HEIGHT: 102px" height="102" cellspacing="0" cellpadding="0" width="83" align="left" summary="" border="1">
    <tbody>
        <tr>
            <td>
            <div>&nbsp;</div>
            <div align="center">&nbsp;</div>
            <div align="center">用户数据区</div>
            <div align="center">&nbsp;</div>
            </td>
        </tr>
        <tr>
            <td>
            <p align="center">系统参数区</p>
            </td>
        </tr>
    </tbody>
</table>
</p>
<div>&nbsp;存储器表：</div>
<div>&middot;数据：文字型（2字节）</div>
<div>&middot;容量：8192个字</div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;地址 0 ～ 15&nbsp;为系统参数区</div>
<div><span>&nbsp;&nbsp;&nbsp;&nbsp; 16</span>～8191 为用户数据区</div>
<div>&nbsp;&nbsp;&nbsp;&nbsp; 例：MTBL（16）、MTBL（100）</div>
<div>&nbsp;</div>
<div><strong>四、</strong><strong>GC</strong><strong>通讯协议</strong></div>
<div>起始字：ESC</div>
<div>局号：默认为0，可省略</div>
<div>指令：读&ldquo;R&rdquo;，写&ldquo;W&rdquo;</div>
<div>参数：读取的起始地址，读取的字数。写入的起始地址，写入的数据。</div>
<div>结束字：CR</div>
<div align="center">
<table cellspacing="0" cellpadding="0" summary="" border="1">
    <tbody>
        <tr>
            <td width="63">
            <div align="center">ＥＳＣ</div>
            </td>
            <td width="125">
            <div align="center">局号（可省略）</div>
            </td>
            <td width="74">
            <div align="center">指令</div>
            </td>
            <td width="74">
            <div align="center">参数１</div>
            </td>
            <td width="70">
            <div align="center">．．．．．．</div>
            </td>
            <td width="64">
            <div align="center">参数Ｎ</div>
            </td>
            <td width="66">
            <div align="center">ＣＲ</div>
            </td>
        </tr>
    </tbody>
</table>
</div>
<div>例：读MTBL（100）开始的两个字</div>
<div>那么，我们通讯需要的数据结构为：ESC + &ldquo;R&rdquo; + &ldquo;0064&rdquo; + &quot;0002&quot; +CR</div>
<div>例：在MTBL（100）中写入2000</div>
<div>此时通讯需要的数据结构为：ESC + &ldquo;W&rdquo; + &ldquo;0064&rdquo; + &quot;07D0&quot; +CR</div>
<div>&nbsp;</div>
<div><strong>五、触摸屏用</strong><strong>K-BASIC</strong><strong>语言进行编程</strong></div>
<div>光洋电子GC系列触摸屏内带强大功能的K-BASIC编程语言，可以对触摸屏部件进行编程。当以有的部品库不能满足您的需求时，就可以用编程来实现。</div>
<div>K-BASIC语言主要构架是QBASIC语言，有自己固定的格式，如下：</div>
<div>Init</div>
<div>（初始块，这部分程序在程序运行的开始执行，用于对变量的声明和初始化。）</div>
<div>end init</div>
<div>conf</div>
<div>（配置块，本部品被打开或执行时，本部分程序才执行。）</div>
<div>end conf</div>
<div>evnt</div>
<div>（事件块，这部分程序只有在相关条件成立之后才执行。）</div>
<div>end evnt</div>
<div>&nbsp;</div>
<div>例：把当前画面号写到MTBL(106)中，并把当前画面号显示出来。</div>
<div align="left">conf</div>
<div align="left"><span>&nbsp;&nbsp;&nbsp; cyclic 00~mtbl(106)</span></div>
<div align="left">end conf</div>
<div align="left">evnt</div>
<div align="left"><span>&nbsp;&nbsp; input type%, id@, data%</span></div>
<div align="left"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; VAR@ = GETGID()</span></div>
<div align="left"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; NO% = GETGNO(VAR@)</span></div>
<div align="left"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 00~mtbl(106]) = NO%</span></div>
<div align="left"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; numdsp ..num000,NO%</span></div>
<div>end evnt</div>
<div>&nbsp;</div>
<div><strong>六、以</strong><strong>R134a</strong><strong>加注页面进行详细说明</strong></div>
<div>&nbsp;<img height="239" alt="" width="319" src="/userfilemodule/download.do?action=reference&amp;id=61812&amp;bokeeName=wyqbtbu" />&nbsp;</div>
<div>共用<span>18个内部寄存器。</span></div>
<div>当前画面号；</div>
<div>抽真空，清零，加注；</div>
<div>加注量设置；</div>
<div>高压，罐压，真空泵，加注指示，低压，称重；</div>
<div>漏气，启动空调，回收冷冻液，灌满，加注完成，抽真空完成，压力高等待。（隐含）</div>
<div></div>
<div>读写类型及数据类型：&nbsp;
<table cellspacing="0" cellpadding="0" summary="" border="1">
    <tbody>
        <tr>
            <td valign="top" width="115">
            <div>抽真空</div>
            </td>
            <td valign="top" width="120">
            <div>清零</div>
            </td>
            <td valign="top" width="120">
            <div>加注</div>
            </td>
            <td valign="top" width="108">
            <div>&nbsp;</div>
            </td>
            <td valign="top" width="120">
            <div>加注量</div>
            </td>
        </tr>
        <tr>
            <td valign="top" width="115">
            <div>MTBL(110)</div>
            </td>
            <td valign="top" width="120">
            <div>MTBL(111)</div>
            </td>
            <td valign="top" width="120">
            <div>MTBL(112)</div>
            </td>
            <td valign="top" width="108">
            <div>&nbsp;</div>
            </td>
            <td valign="top" width="120">
            <div>MTBL(113)</div>
            </td>
        </tr>
        <tr>
            <td valign="top" width="115">
            <div>读（开关）</div>
            </td>
            <td valign="top" width="120">
            <div>读（开关）</div>
            </td>
            <td valign="top" width="120">
            <div>读（开关）</div>
            </td>
            <td valign="top" width="108">
            <div>&nbsp;</div>
            </td>
            <td valign="top" width="120">
            <div>读（数据）</div>
            </td>
        </tr>
        <tr>
            <td valign="top" width="115" colspan="5">
            <div>&nbsp;</div>
            </td>
        </tr>
        <tr>
            <td valign="top" width="115">
            <div>高压</div>
            </td>
            <td valign="top" width="120">
            <div>罐压</div>
            </td>
            <td valign="top" width="120">
            <div>真空泵</div>
            </td>
            <td valign="top" width="108">
            <div>加注指示</div>
            </td>
            <td valign="top" width="120">
            <div>&nbsp;</div>
            </td>
        </tr>
        <tr>
            <td valign="top" width="115">
            <div>MTBL(120)</div>
            </td>
            <td valign="top" width="120">
            <div>MTBL(121)</div>
            </td>
            <td valign="top" width="120">
            <div>MTBL(122)</div>
            </td>
            <td valign="top" width="108">
            <div>MTBL(123)</div>
            </td>
            <td valign="top" width="120">
            <div>&nbsp;</div>
            </td>
        </tr>
        <tr>
            <td valign="top" width="115">
            <div>写（开关）</div>
            </td>
            <td valign="top" width="120">
            <div>写（开关）</div>
            </td>
            <td valign="top" width="120">
            <div>写（开关）</div>
            </td>
            <td valign="top" width="108">
            <div>写（开关）</div>
            </td>
            <td valign="top" width="120">
            <div>&nbsp;</div>
            </td>
        </tr>
        <tr>
            <td valign="top" width="115" colspan="5">
            <div>&nbsp;</div>
            </td>
        </tr>
        <tr>
            <td valign="top" width="115">
            <div>漏气</div>
            </td>
            <td valign="top" width="120">
            <div>启动空调</div>
            </td>
            <td valign="top" width="120">
            <div>回收冷冻液</div>
            </td>
            <td valign="top" width="108">
            <div>罐满</div>
            </td>
            <td valign="top" width="120">
            <div>加注完成</div>
            </td>
        </tr>
        <tr>
            <td valign="top" width="115">
            <div>MTBL(130)</div>
            </td>
            <td valign="top" width="120">
            <div>MTBL(131)</div>
            </td>
            <td valign="top" width="120">
            <div>MTBL(132)</div>
            </td>
            <td valign="top" width="108">
            <div>MTBL(133)</div>
            </td>
            <td valign="top" width="120">
            <div>MTBL(134)</div>
            </td>
        </tr>
        <tr>
            <td valign="top" width="115">
            <div>写（开关）</div>
            </td>
            <td valign="top" width="120">
            <div>写（开关）</div>
            </td>
            <td valign="top" width="120">
            <div>写（开关）</div>
            </td>
            <td valign="top" width="108">
            <div>写（开关）</div>
            </td>
            <td valign="top" width="120">
            <div>写（开关）</div>
            </td>
        </tr>
        <tr>
            <td valign="top" width="115" colspan="5">
            <div></div>
            </td>
        </tr>
        <tr>
            <td valign="top" width="115">
            <div>压力高等待</div>
            </td>
            <td valign="top" width="120">
            <div>抽真空完成</div>
            </td>
            <td valign="top" width="120">
            <div>&nbsp;</div>
            </td>
            <td valign="top" width="108">
            <div>低压</div>
            </td>
            <td valign="top" width="120">
            <div>称重</div>
            </td>
        </tr>
        <tr>
            <td valign="top" width="115">
            <div>MTBL(135)</div>
            </td>
            <td valign="top" width="120">
            <div>MTBL(136)</div>
            </td>
            <td valign="top" width="120">
            <div>&nbsp;</div>
            </td>
            <td valign="top" width="108">
            <div>MTBL(140)</div>
            </td>
            <td valign="top" width="120">
            <div>MTBL(141)</div>
            </td>
        </tr>
        <tr>
            <td valign="top" width="115">
            <div>写（开关）</div>
            </td>
            <td valign="top" width="120">
            <div>写（开关）</div>
            </td>
            <td valign="top" width="120">
            <div>&nbsp;</div>
            </td>
            <td valign="top" width="108">
            <div>写（数据）</div>
            </td>
            <td valign="top" width="120">
            <div>写（数据）</div>
            </td>
        </tr>
    </tbody>
</table>
</div>
<div>&nbsp;</div>
<div>从以上表格可以看出，根据读写类型，存储器连续且有序排列，这样的好处在于使得通讯程序更加简洁，使通讯数据处理更加简单，方便于单片机的编程和调试。</div>
<div>对于本画面，通讯代码如下：</div>
<div>ESC + &ldquo;R&rdquo; + &ldquo;006E&rdquo; + &quot;0004&quot; +CR，从MTBL（110）读到MTBL（113）。</div>
<div>ESC + &ldquo;W&rdquo; + &ldquo;0082&rdquo; + &quot;&quot;+&hellip;&hellip;+&quot;&quot; +CR，从MTBL（110）直接写13个字。</div>
<div>&nbsp;</div>
<div>对于触摸屏上本页面的隐含数据，为报警开关类型，在画面上为隐藏方式，当有报警发生时，以闪烁框形式显示出来，并能手动消除。包括：漏气、启动空调、回收冷冻液、灌满、加注完成、抽真空完成、压力高等待共<span>7个报警。</span></div>
<span>
<p>
<table style="WIDTH: 113px; HEIGHT: 45px" cellspacing="0" cellpadding="0" width="113">
    <tbody>
        <tr>
            <td>
            <div v:shape="_x0000_s1032">
            <div align="center"><font color="#ff0000" size="4"><strong>抽真空完成</strong></font></div>
            </div>
            </td>
        </tr>
    </tbody>
</table>
</p>
<p>&nbsp;</p>
<div align="left">init</div>
<div align="left"><span>&nbsp;&nbsp;&nbsp; CYCLIC 00~MTBL(130)</span></div>
<div align="left"><span>&nbsp;&nbsp;&nbsp; CYCLIC 00~MTBL(131)</span></div>
<div align="left"><span>&nbsp;&nbsp;&nbsp; CYCLIC 00~MTBL(132)</span></div>
<div align="left"><span>&nbsp;&nbsp;&nbsp; CYCLIC 00~MTBL(133)</span></div>
<div align="left"><span>&nbsp;&nbsp;&nbsp; CYCLIC 00~MTBL(134)</span></div>
<div align="left"><span>&nbsp;&nbsp;&nbsp; CYCLIC 00~MTBL(135)</span></div>
<div align="left"><span>&nbsp;&nbsp;&nbsp; CYCLIC 00~MTBL(136)</span></div>
<div align="left"><span>&nbsp;&nbsp;&nbsp; STRDSP ..STR000,&quot;&quot;</span></div>
<div align="left">end init</div>
<div align="left">&nbsp;</div>
<div align="left">conf</div>
<div align="left">end conf</div>
<div align="left">&nbsp;</div>
<div align="left">evnt</div>
<div align="left"><span>&nbsp;&nbsp;&nbsp; input type%,id@,data%</span></div>
<div align="left"><span>&nbsp;&nbsp;&nbsp; if id@=00~MTBL(130) AND data%=1 then</span></div>
<div align="left"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; STRDSP ..STR000,&quot;</span>漏气&quot;</div>
<div align="left"><span>&nbsp;&nbsp;&nbsp; end if</span></div>
<div align="left"><span>&nbsp;&nbsp;&nbsp; if id@=00~MTBL(131) AND data%=1 then</span></div>
<div align="left"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; STRDSP ..STR000,&quot;</span>启动空调&quot;</div>
<div align="left"><span>&nbsp;&nbsp;&nbsp; end if</span></div>
<div align="left"><span>&nbsp;&nbsp;&nbsp; if id@=00~MTBL(132) AND data%=1 then</span></div>
<div align="left"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; STRDSP ..STR000,&quot;</span>回收冷冻油&quot;</div>
<div align="left"><span>&nbsp;&nbsp;&nbsp; end if</span></div>
<div align="left"><span>&nbsp;&nbsp;&nbsp; if id@=00~MTBL(133) AND data%=1 then</span></div>
<div align="left"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; STRDSP ..STR000,&quot;</span>罐满&quot;</div>
<div align="left"><span>&nbsp;&nbsp;&nbsp; end if</span></div>
<div align="left"><span>&nbsp;&nbsp;&nbsp; if id@=00~MTBL(134) AND data%=1 then</span></div>
<div align="left"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; STRDSP ..STR000,&quot;</span>加注完成&quot;</div>
<div align="left"><span>&nbsp;&nbsp;&nbsp; end if</span></div>
<div align="left"><span>&nbsp;&nbsp;&nbsp; if id@=00~MTBL(135) AND data%=1 then</span></div>
<div align="left"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; STRDSP ..STR000,&quot;</span>压力高等待&quot;</div>
<div align="left"><span>&nbsp;&nbsp;&nbsp; end if</span></div>
<div align="left"><span>&nbsp;&nbsp;&nbsp; if id@=00~MTBL(136) AND data%=1 then</span></div>
<div align="left"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; STRDSP ..STR000,&quot;</span>抽真空完成&quot;</div>
<div align="left"><span>&nbsp;&nbsp;&nbsp; end if</span></div>
<div align="left"><span>&nbsp;&nbsp;&nbsp; if id@=..SWT000 and data%=1 then</span></div>
<div align="left"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 00~MTBL(130)=0</span></div>
<div align="left"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 00~MTBL(131)=0</span></div>
<div align="left"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 00~MTBL(132)=0</span></div>
<div align="left"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 00~MTBL(133)=0</span></div>
<div align="left"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 00~MTBL(134)=0</span></div>
<div align="left"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 00~MTBL(135)=0</span></div>
<div align="left"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 00~MTBL(136)=0</span></div>
<div align="left">&nbsp;<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; STRDSP ..STR000,&quot;&quot;</span></div>
<div align="left"><span>&nbsp;&nbsp;&nbsp; </span>end if</div>
<div>end evnt</div>
<div>&nbsp;</div>
<div>参考资料：</div>
<div>光洋电子：《Screen Creator 5 操作手册》、《K-basic编程指导_Chinese》、《K-basic指令详解》、《GC通讯连接手册》</div>
</span>对此部品编程如下：]]>
</description>
<guid isPermaLink="false">http://www.bokee.net/blogmodule/weblogcomment_viewEntry/152120.html</guid>
<subject></subject>
<author>wyqbtbu</author>
<category></category>
<pubDate>Thu, 15 Jun 2006 21:14:37 CST </pubDate>
</item>

</channel>
</rss>
