找答案的高端用户(找答案钻石及双钻级别的用户)将尽可能从此问题下的所有回
答中,为您推荐最佳答案。届时您可以根据推荐数采纳答案。
如果自提问时间起7天内您仍无法选出最佳答案,您可以选择“无满意答案”关闭此问题。
手机扫码追踪该问题,
觉得实用,立即去分享!
点击复制链接
你的附图,从左至右,记为图1、图2、图3、图4.
图1是主站写从站的,将主站VB2000开始的100个字(200个字节)的数据发送给从站。
图3中,对主站VB2000的最低位V2000.0做了一个改写。你采用了主站通信指令MBUS_MSG的完成位done指定的M0.1作为停止条件,M10.0作为启动条件控制V2000.0的置位、复位。主站写从站连续多个保持性寄存器(功能码16)数据帧(209个字节),从站响应回传数据帧(8个字节),计算起始位、停止位、报文头(地址域1个字节)、报文尾(CRC校验码),耗费的时间大约是传输2170个比特耗费的时间,约0.22秒。理论上M0.5的周期1秒内,只有0.22秒M0.1为0,0.78秒是1,故而V2000.0大多数时间是0.
至于你程序监控,看到V2000.0为1,只能是恰好碰到了。这是计算机与PLC通讯机制的问题。深入的研究可以参考:西门子专家赵欣老师的讲解。(担心你一下子看不懂)
http://www.ad.siemens.com.cn/service/elearning/series/288.html
http://www.ad.siemens.com.cn/club/bbs/post.aspx?a_id=1621155&b_id=25&s_id=&num=65#anch
图4初始化从站,把保持性寄存器区映射在以VB2000开始的1000个字间。从主站接受的数据自然存在VB2000开始的寄存器内,主站的VB2000对应从站的VB2000,主站VB2001对应从站VB2001,以此类推。
图2中,从站接收到的数据V2000.0驱动其输出Q0.0。由于主站中V2000.0大多数时间时间为0,Q0.0则多数时间为0,特别是还涉及通信数据一致性问题(通信的过程并不是在PLC一个扫描周期完成的,往往多个周期分段处理,数据又可能随着程序执行而在等待通信处理的过程中本身发生改变)。你看不到Q0.0被点亮十分正常。这也许就是所说的通信不上的判断依据。你亲眼所见未必为真,必须透过现象看本质。
为了测试你的通信本身是否成功,建议你读写IO点,直接改写V区数据(初始化、或者在程序中改写),不要借助你通信中的done位。
首次回答问题,获得
双倍西币积分!
立即成为技术知识分享的一员!
找答案微信小程序
提问
搜索
欢迎您访问支持中心!
丰富的视频,全方位的文档,大量的网友交流精华……
为了更好的完善这些内容,我们诚邀您在浏览结束后,花20秒左右的时间,完成一个用户在线调查!
感谢您的支持!