用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

相关推荐

  • 如何设计动态树型的左导航条?

    我想做一个动态的左导航条,是以树型结构形成的,需要有C语言脚本进行编辑,请教各位高手啦!!谢谢!! 问题补充:WinCC V6.2中的“菜单和工具栏”如何生成较为简单的菜…

    SIMATIC WinCC 2019年6月11日
  • wincc监控无法操作

    从工业现场拷贝一个项目,在自己电脑上运行时候发现(没有连接PLC)只要是用C动作来实现的阀门电机给定界面均无法打开,只要是直接连接的就能打开给定界面,不知道C动作与直接连接有什么区…

    SIMATIC WinCC 2021年7月5日
  • 请问要想学习报表要看那方面的书籍

    没有学历,不懂英语,看报表程序跟天书一样。我想从最基础的东西一点一点的学。不知道要看那放面的书。报表的编程用的什么语言?  —为了更好的生活努力! 问题补充:很…

    SIMATIC WinCC 2019年6月11日
  • WinCC切回画面时,不变的变量不会刷新是怎么回事?

    最近碰到一个比较棘手的问题,WinCC组态IO域比较多时,如果切换画面后,然后再切回原画面,PLC内部的变量如果没有变化,IO域就会一直显示0,变量管理器里查看变量的状态是3个问号…

    SIMATIC WinCC 2020年11月1日
  • IO域更改根据变量改变颜色

    IO域更改根据变量改变颜色 最佳答案 不知道你说的是wincc,还是触摸屏,触摸屏则是参考图片1.WINCC参考连接:http://www.ad.siemens.com.cn/Se…

    2021年7月5日
  • wincc c/s模式 无法热切换

    如题,现有两台服务器A、B,一用一备,带两台客户机。正常状态:AB同时激活,则两台客户机默认连接到A;现把A退出激活模式,则两台客户机自动切换到B。现在的问题是退出A无法热切到B了…

    SIMATIC WinCC 2019年6月11日
  • wincc函数解答

    新手请教大家问题,(1)用直接连接将1连到object上是干嘛的,如果说是连接到object上的属性如display我能理解,可直接接到object上起什么作用呢?(2)关于Pro…

    SIMATIC WinCC 2019年6月11日
  • 西门子400H PLC的C动作

    怎么做一个按钮来实现自动手动状态的切换,我想用C动作但是不知道怎么做的,希望有熟悉着提供一下方法,谢过! 问题补充:上位机是WINCC,在WINCC上做一个按钮。 最佳答案 可以通…

    SIMATIC WinCC 2017年11月16日
  • WINCC 7.4 用项目复制器复制项目到另一台电脑上,复制成功后一秒自动删除了,来大牛

    四台电脑,两台服务器两台客户端,两台服务器用项目复制器复制的时候,都复制成功了,过了一秒,自己自动删除了!没有解决办法了,求帮助,什么方法都用过了,不过不能自己拷贝到另一台电脑上,…

    SIMATIC WinCC 2020年11月1日
  • 如何在Wincc运行时语言设置中添加“德语”

    别人的项目运行时语言使用的是德语,但我使用的Wincc 602 Asia,运行时语言选项里没有那个,该如何解决,软件重装也不行!谢谢高手指教! 问题补充:Asi…

    SIMATIC WinCC 2019年6月11日