用vbs怎么提取mscomm接收到的大于127的ascii码?

mscomm接收到的一帧数据为 ed 30 31 32 0d,VBS提供的字符串函数不能处理大于127的ascii码,那么用什么方法能检测到大于127的起始符“ed”呢?

最佳答案

当发送含有ascii码大于127的字符串的时候,就会造成丢失字节问题,解决方法如下:

发送:

procedure SendMessage(AMessage: String);
var
  len,I : integer;
  temp:Variant;
begin
  len:=length(AMessage);
  temp := VarArrayCreate([0, len-1], varbyte);
  for I := 0 to len-1 do    // Iterate
  begin
     temp[i] := ord(char(AMessage[i+1]));
  end;    // for
  MSComm1.Output := temp;
end;

注意在VarArrayCreate的帮助中有这样一句话

Variant arrays with an element type of varByte are the preferred method of passing binary data between OLE Automation controllers and servers.

接收:

接收就简单多了

procedure ReceiveData(Sender: TObject);
var
  temp: array of byte;
  S:string;
begin
  case FComm.commEvent of
    comEvReceive:
    begin
      temp := MScomm1.input;
      s:=string(temp);   //S里面放的就是最后结果
    end;
  end;
end;

可参考:《MSCOMM完美发送接收string类型 》
http://blog.csdn.net/yuechuan/article/details/488085

提问者对于答案的评价:

原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc223978.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2018年3月6日 下午1:26
下一篇 2018年3月6日 下午1:26

相关推荐

  • X208交换机组成环网

    原先用2台X208组成环网 P1口对接  P2口对接,现在想用1台X208   一台X108  从X…

    SIMATIC WinCC 2021年7月5日
  • WinCC 6AV6381-1BN06-2AV0 如何下载?

    刚刚有在产品支持这边看到这个型号的软件,想问下要怎么下载?本人刚刚接触,很多地方不懂,希望高手能不吝赐教。谢谢 问题补充:谢谢,现在我是要把这个软件下载到一个光盘上面,暂时不是我用…

    SIMATIC WinCC 2019年6月11日
  • WINCC亚洲版的Audit

    请问有没有适用于WinCC V7.0或WinCC V7.2亚洲版的Audit?需要电子签名功能是否必须安装Audit? 最佳答案 7.2也有亚洲版和欧洲版本,安…

    SIMATIC WinCC 2017年11月25日
  • WINCC报警记录运行系统

    想在WINCC运行系统中单击显示两个阶段的报警数据(比如33~44和101~103),按钮代码如下: sprintf(SQLcmd,"MSGNR>=%d&…

    SIMATIC WinCC 2019年6月11日
  • WINCC以及5611网卡问题

    问题有两个: 1、WINCC在进入某一画面时出现Unhandled exception was raised.Lookfile"c…

    SIMATIC WinCC 2019年6月11日
  • wincc开机自启动

    wincc开机自启动 不好用了 怎么修复啊 最佳答案 参见相关问题: wincc自启动http://www.ad.siemens.com.cn/ser…

    SIMATIC WinCC 2017年12月1日
  • 谁有深入浅出西门子WinCC V6

    请有的朋友发来一份学习一下,在下载中心我找不到。谢谢了! QQ444197629 问题补充:我现在要用Wincc做报表,wincc的其它功能基本会用,只是做报表时一直摸不…

    SIMATIC WinCC 2019年6月11日
  • wincc报警信息通过窗口形式跳出

    wincc里一旦有报警信息,如何实现弹出一个报警窗口,操作人员可以直接关闭。找了一些相关的贴,只有C语言的代码,按照说明也没有实现,请高手指点。 最佳答案 1.建立画面,插入报警控…

    SIMATIC WinCC 2017年11月18日
  • SQL2005安装遇到问题

    我的SQL2005是镜像版的,在点击安装时,也能够显示 setup SQL server 2005(wincc)  &n…

    SIMATIC WinCC 2019年6月11日
  • WINCC6.0PROFIBUS通讯

    请问WINCC6.0和STEP7315-2DP进行PROFIBUS通讯需要设置哪些东西?我是初学者。如果有资料请发我邮箱TT270141046@163。COM 最佳答案 可以参考相…

    SIMATIC WinCC 2019年6月11日