| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3258 人关注过本帖
标题:急求助,如何将数据库的数据转换成232/485的形式,然后通过串口发出去
取消只看楼主 加入收藏
fanjinyu9108
Rank: 2
等 级:论坛游民
帖 子:704
专家分:20
注 册:2014-1-16
结帖率:88.62%
收藏
已结贴  问题点数:20 回复次数:5 
急求助,如何将数据库的数据转换成232/485的形式,然后通过串口发出去
如题,如能解决,本人愿付费。




[此贴子已经被作者于2019-11-24 19:16编辑过]

搜索更多相关主题的帖子: 转换 串口 数据库 形式 数据 
2019-11-24 19:04
fanjinyu9108
Rank: 2
等 级:论坛游民
帖 子:704
专家分:20
注 册:2014-1-16
收藏
得分:0 
好的,我来发
TankData.rar (17.02 KB)
,就是这个表,格式是ACCESS数据库,数据库的格式无所谓,我可以转换成VFP临时表,表每隔10秒更新一次,每次更新的数据都要通过485/232的通信方式传到智能物流网智能机,至于通信协议按照常规方式

[此贴子已经被作者于2019-11-24 22:46编辑过]

2019-11-24 22:26
fanjinyu9108
Rank: 2
等 级:论坛游民
帖 子:704
专家分:20
注 册:2014-1-16
收藏
得分:0 
我在网上找了一个接受串口数据的例子,但是我是要发出到串口通信,例子如下:
MsComm32控件接收串口数据示例.rar (47.65 KB)
2019-11-24 22:59
fanjinyu9108
Rank: 2
等 级:论坛游民
帖 子:704
专家分:20
注 册:2014-1-16
收藏
得分:0 
关于串口发送数据,我做了如下程序,请师傅们指点下:
thisform.LockScreen=.t.
nhandle=Sqlstringconnect("Driver={Microsoft Access Driver (*.mdb)}; Dbq=\\Jls4\ENRAF\DATA\tankdatart;Pwd=")
        IF  nhandle<=0
                   MESSAGEBOX("数据库连接失败!!!",16,  '错误信息')
                   RETURN
        ELSE    &&取数据成功
                Ac=SQLEXEC(nhandle,"Select tankname,localtime,displacerlevel,temperature From tankdata ","T_cs")
              
                  IF  Ac<0
                               MESSAGEBOX("读取数据错误!",16,  '错误信息')
                               RETURN
                  ELSE
                       SELECT  ALLTRIM(tankname) tankname,TTOC(localtime) localtime ,ALLTRIM(STR(displacerlevel)) displacerlevel,ALLTRIM(STR(ROUND(temperature,1))) temperature  FROM t_cs INTO CURSOR t_cs1
                       SELECT t_cs1
                       cmsg=""
                       SCAN     &&从第一条记录到最后一条记录
                          FOR ii=1 TO 4   &&从第一个字段到最后一个字段
                               x=Evaluate(FIELD(ii)) &&要发送的数据
                               z=""
                               FOR i=1 TO LENc(x)
                                 y=ALLTRIM(STR(ASC(SUBSTRc(x,i,1))))
                                 z=z+CHR(13)+CHR(10)+y
                                 
                               eNDFOR
                               cmsg=cmsg+z
                          ENDFOR   &&最后一个字段
                       ENDSCAN     &&循环到最后一条记录结束  
                       
                           
                  ENDIF
                 = SQLDISCONNECT(nhandle)   &&关闭连接
                 Set Library To e:\应急数据\myFll
                 hCom1=ComOpen(4,"2400,S,8,1")&&这里是串口的参数,比如9600等
                 If hCom1== ""
                        MessageBox("无法打开串口com1!")
                        Return
                 EndIf
                 ComWrite(hCom1,cMsg) &&向串口输出
                 ComClose(hCom1)&&关闭串口
                 Set Library To
        ENDIF
   
thisform.refresh   
thisform.LockScreen=.f.        
2019-11-27 19:56
fanjinyu9108
Rank: 2
等 级:论坛游民
帖 子:704
专家分:20
注 册:2014-1-16
收藏
得分:0 
fown师傅,我还不大理解为什么一定要用数组
2019-11-27 21:55
fanjinyu9108
Rank: 2
等 级:论坛游民
帖 子:704
专家分:20
注 册:2014-1-16
收藏
得分:0 
cmsg=cmsg+ z  改成cmsg = cmsg + chr (z)
这样可以吗
2019-11-28 11:51
快速回复:急求助,如何将数据库的数据转换成232/485的形式,然后通过串口发出去
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.078360 second(s), 10 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved