签到有奖
消息提醒
运维工程师专区
官方商城
扫码分享好友 任选多种周边
最近有个项目做MES,和上位机交换数据,用SMART200做下位机,采用232通讯,自由通讯协议。
波特率9600 8N1
现在发送40个字节的时候,上位机只能收到一半,其它接收不了,客户指定是我们的问题,但是我看了西门子的发送指令,没有地方可以调节发送速度,请大侠指点
后:我用串口通讯软件和下位机调试,我发现,如果把串口助手中的接收超时改为5MS,那就和客户所表达的现象一致,接收到的数据分为二段或3段接收完,如果我把超时时间设置为50或100MS,那接收的数据就全了, 我想问下,这个是我的PLC程序问题还是上位机的问题,
如果客户不松口,我要怎样才能说服客户? 因为我算过用9600 40个字节需要41.5MS的时间,如果客户上位机接收数据小于这个时间,肯定是无法接收完整的, 本来数据信息都有头缀和尾缀,按道理不会这样呀,盼指点。
另:客户不同意修改波特率,我从侧面了解到客户设置的超时为5MS。
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
帖子链接:https://www.ad.siemens.com.cn/club/bbs/post.aspx?a_id=1744788&b_id=64&s_id=0&num=14
说明情况,做好沟通工作。
有两类超时:
1、信息超时,指整帧信息从第1个字符至最后一个字符的时间;
2、字符间的超时,指两个字符之间的空闲时间。
你所谓的超时,是指哪一类的?
这个上位机没有其他协议吗5MS的速度太快了,你smart在程序两不多的情况下扫描时间也有一两毫秒。现在串口通信问题本来就会有各种小问题,还是建议使用网络协议,比如MODBUS TCPIP,S7等标准协议。
百分百是PLC的串口设置问题,你可以设置115200的频率(RS232串口支持115.2K的频率),延时最低50MS以上才能把数据全部接收完成。
你的问题在于:延时太短;通信频率太低。
上位机的问题 上位机做不了 5ms
上位机也判断 不了 5ms (除非只做和你通讯,别的不做了)
客户指定接口和协议
真的很无语,楼主和用户都是不懂通信啊,居然双方都会接受9600的波特率,在已知这么严苛的通信条件下,即使是以太网也不见得做得到呀。
我不知道,即使楼主说服了用户用了115200的波特率,就能彻底解决问题了吗?
超时是指我箭头所示的地方,这里设置为100MS就可以了,重复快速的发也可以接收完全,
感谢各位前辈的指点,我基本上有数了,本身波特率低了,发送数据的速度不够,上位机应修改接收方式,因为有前缀和尾缀, 应等 到接收到最后的尾缀再进行判断,
建议客户修改波特率或更改接收方式,。
因为这个小机台是人工取放料的,一个周期为8-10秒,当初自己用串口助手测试都没有问题,现在客户的工程师不愿意修改,拿他一点办法也没有,只能向上级反应了。
1、你是主站,很多时候只能迁就从站的协议,如果数据刷新时间效果不理想可以反映给你的上司裁决。
2、你是主站,别人是从站,你就得按别人的通讯协议写程序,没道理人家的通讯周期是10秒,你想10毫秒完成?别做梦。
3、如果上位机是PC,那么超时必须>100ms,因为三大主流操作系统很难做到1ms的串口中断接收数据也很难实现5ms以内的响应时间,那样北桥就不用干其它事了;如果上位机是PLC且写程序的是高手用中断通讯,超时必须>20ms,因为PLC的数据处理也要时间;如果上位机是单片机,超时会非常不确定,不同的人写的程序不一样(用的单片机规格、是否用OS、是中断通讯还是查询通讯、写程序的人的水平及RP都会有很大的影响)。
4、作为主站时,我们写程序时超时时间基本上都会>100ms,个别的奇葩从站还要更奇葩的超时时间。
非常感谢! 您的发言可以直接发给客户工程了,
5ms确实太短了
一句话,交出通讯协议。按协议编程。
支持楼上意见!
分享
扫码分享好友 任选多种好礼
收藏
有帮助
欢迎您访问支持中心!
丰富的视频,全方位的文档,大量的网友交流精华……
为了更好的完善这些内容,我们诚邀您在浏览结束后,花20秒左右的时间,完成一个用户在线调查!
感谢您的支持!
密码至少8位,包含大、小写字母,数字和符号至少三种。
允许邮箱和手机接收来自支持中心网站的信息
我已同意《支持中心网站注册协议和隐私政策》
微信登录扫码一键登录
验证码登录
密码登录
二维码失效点击重试
打开微信扫一扫,快速登录/注册
未注册手机验证后自动登录,注册即代表同意《支持中心网站注册协议和隐私政策》
三日内免验证登录
短信登录
登录