签到有奖
消息提醒
运维工程师专区
官方商城
扫码分享好友 任选多种周边
TIA V16 RT advanced用MSComm串口通信,只能接收调试工具发送的单个字符(或单个十六进制数),若一次发送多个字符(>=2个字符),则显示InBufferCount为0;
若RThreshold=2,则还是只能发送单个字符,但识别(显示)时,是按Unicode码显示的(如:0x61,0X00,对应'a'因为TIA RT advanced只支持WString,再发送,则会覆盖‘a’)
' 打开串口,因为直接操作PortOpen属性无效。
objMSComm1.CommPort=3 objMSComm1.Settings="9600,N,8,1" objMSComm1.RThreshold=1 objMSComm1.SThreshold=0 ' 以二进制形式接收 objMSComm1.InputMode=1 objMSComm1.InBufferCount=0
' 每次读取全部数据 objMSComm1.InputLen=0 ' objMSComm1.Enabled=True
' 打开串口 tagPortOpen.Value=True
OnComm部分:
' 读取InBufferCount值
tagCount.Value=objMSComm1.InBufferCount ' 读取接收数据 strTemp=CStr(objMSComm1.Input)
' 将接收数据显示 tagRecBuffer.Value=strTemp
若InputMode=0,只能正确接收调试工具第一次发送的单个字符,再发送时,InBufferCount就变为0了。
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
帖子链接:https://www.ad.siemens.com.cn/club/bbs/post.aspx?a_id=1725800&b_id=5&s_id=0&num=1
objMSComm1.RThreshold=1 objMSComm1.SThreshold=0
这两个属性好像是一个发送缓存,一个接收缓存,你设置成1,那就是1个字节吧
分享
扫码分享好友 任选多种好礼
收藏
有帮助
欢迎您访问支持中心!
丰富的视频,全方位的文档,大量的网友交流精华……
为了更好的完善这些内容,我们诚邀您在浏览结束后,花20秒左右的时间,完成一个用户在线调查!
感谢您的支持!
密码至少8位,包含大、小写字母,数字和符号至少三种。
允许邮箱和手机接收来自支持中心网站的信息
我已同意《支持中心网站注册协议和隐私政策》
微信登录扫码一键登录
验证码登录
密码登录
二维码失效点击重试
打开微信扫一扫,快速登录/注册
未注册手机验证后自动登录,注册即代表同意《支持中心网站注册协议和隐私政策》
三日内免验证登录
短信登录
登录