用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

相关推荐

  • 怎么置位字变量中的某一位

    各位大侠请给予指教,能用Settagbit()函数吗,如果能用具体怎么用啊? 专家建议 在 WinCC 中用以下脚本可以实现把16位无符号变量“tag”中的第5…

    SIMATIC WinCC 2020年11月1日
  • wincc自带的项目函数的说明在那可以找到

    我想问到wincc自带的项目函数的说明在那里可以找到? 最佳答案 WINCC自带帮助手册里面有->全局脚本函数描述,这一章,再那里面有说明,主要是内部函数,其他C语言的运算转…

    SIMATIC WinCC 2019年6月11日
  • wincc画面背景

    wincc画面背景或者图片背景怎么能做成透明的? 最佳答案 只能在其它的图片处理软件里弄。 比如 flash,先选定图片,然后右击,选择“分离”,然后用“橡皮擦…

    SIMATIC WinCC 2019年6月11日
  • wincc变量记录的添加

    在wincc中的变量记录添加实数变量,发现每加一个变量都要在变量目录表里找,要花费十几秒的时间,非常的麻烦,我这有好几百需要添加的变量。想问一下有什么好办法方便批量添加么? 问题补…

    SIMATIC WinCC 2019年6月11日
  • WINCC;PLC加密

    迫于现实困境不得不给WINCC画面,PLC程序加密。想请教下各位哥哥姐姐,大神们有没有很NB的办法给PLC程序,WINCC画面加密。CPU完全拒绝访问是必须的,还有就是到时时间复位…

    SIMATIC WinCC 2020年11月1日
  • wincc内部变量的作用

    请问wincc自带的内部变量有什么作用?麻烦举几个例子详细说明。谢谢! 最佳答案 内部变量是wincc中用来辅助作用。如果想显示当前时间、日期等,都可以用wincc内部变量来实现 …

    SIMATIC WinCC 2019年6月11日
  • WICC报警记录导出问题

    想把WINCC报警记录里面的报警信息导出来,但直接复制是复制不了,有不有办法导出来,把编号对应的报警信息一起导出来。 图片说明:    最佳答案 报警记录—…

    2017年11月29日
  • wincc 用的外部控件,复制到其他电脑,用控件处全灰XX了

    如题,我一个项目,用了一个外部控件,控件放在项目目录下了然后复制到另外一台电脑,先注册控件,然后打开用那个控件画面,结果都是灰色控件属性 上的服务器名称都是空白&nbsp…

    SIMATIC WinCC 2017年11月12日
  • WINCC7.0与S7200 EM277通讯问题

    小弟最近用WINCC7.0通过EM277与S7200CPU用PROFIBUS通讯,通讯什么都没有问题,但是现在遇到一个新问题,每次WINCC启动后原先设定的参数就都归零,我在200…

    SIMATIC WinCC 2017年10月24日
  • M041

    请教一下大家,怎么在WinCC Flexible批量创建画面?(几十页甚至100页)有教程吗?谢谢各位 最佳答案 在项目树下画面中创建的。视频,http://www.ad…

    SIMATIC WinCC 2021年7月5日