技术论坛

s7-200 smart自由口收不到数据

作者 主题
新手

经验值: 17
发帖数: 2
精华帖: 0
主题:【求助】s7-200 smart自由口收不到数据


只看楼主 楼主 2020-01-14 17:45:41

各位前辈好,我想这边遇到一个小问题,向各位前辈请教请教!

我这边在用s7-200smart做一个类似通讯中继的东西,功能如下:

   (1)p0口连接PC,接收PC发出的指令,p1口连接四个驱动器(地址分别为11 12 13 14),将PC的指令解析后分别发到四个驱动器。

   (2)PLC上电时先向四个驱动发送初始化指令,完成后等待接收PC的指令。

遇到的问题如下:

    当用串口助手分别模拟PC和驱动接发数据时,通讯正常,一旦接到驱动器后,上电的初始化那部分通讯正常。但是PC发送的指令解析后,发到地址为11的驱动后,PLC接收不到返回的数据,用串口助手检测发现驱动是返回了数据的,这时假如用串口助手模拟发送返回值的话PLC能接收到。我确保数据解析和校验没问题,驱动器没问题,望各位前辈帮忙提提意见。



 
以下网友喜欢您的帖子:

  
重要声明:

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

帖子链接:http://www.ad.siemens.com.cn/club/bbs/post.aspx?a_id=1604183&b_id=64

奇侠

经验值: 7372
发帖数: 1187
精华帖: 0
回复:s7-200 smart自由口收不到数据


只看楼主 1楼 2020-01-14 19:57:48

P1口与四个驱动器如何连接的?


 
以下网友喜欢您的帖子:

  
奇侠

经验值: 8288
发帖数: 1707
精华帖: 25
回复:s7-200 smart自由口收不到数据


只看楼主 2楼 2020-01-14 21:01:29

建议自己画流程图来分析吧。

单纯的靠空想是很不负责任的。

还有你哟用的是啥通讯协议,不是每种通讯协议都返回数据的。


PLC直接跟驱动器通讯返回数据但PLC不认,PLC跟串口助手通讯返回数据PLC能正常识别,有可能是驱动器没按通讯协议要求接收数据后延时一段时间再返回,而是接收数据后立刻返回造成PLC接收的数据帧前面几个字节没完整接收所以判断数据帧无效。或者是PLC发送完成后没有直接切换为接收状态导致漏接数据。


 
以下网友喜欢您的帖子:

  
新手

经验值: 17
发帖数: 2
精华帖: 0
回复:s7-200 smart自由口收不到数据


只看楼主 楼主 3楼 2020-01-14 22:52:30
以下是引用Zaxife在2020-01-14 21:01:29的发言 >2楼

建议自己画流程图来分析吧。

单纯的靠空想是很不负责任的。

还有你哟用的是啥通讯协议,不是每种通讯协议都返回数据的。


PLC直接跟驱动器通讯返回数据但PLC不认,PLC跟串口助手通讯返回数据PLC能正常识别,有可能是驱动器没按通讯协议要求接收数据后延时一段时间再返回,而是接收数据后立刻返回造成PLC接收的数据帧前面几个字节没完整接收所以判断数据帧无效。或者是PLC发送完成后没有直接切换为接收状态导致漏接数据。

第一部分,plc分别向驱动器发送初始化命令,驱动器收到,并返回了数据,正确!第二部分,plc将pc的命令解析后分别将速度命令发送给驱动器,第一驱动器收到命分,plc将pc的命令解析后分别将速度命令发送给驱动器,第一驱动器收到命令,电机也转动了,驱动也返回数据了(通过串口助手检测到的),但是接收缓存区里没有数据。


 
以下网友喜欢您的帖子:

  
奇侠

经验值: 8288
发帖数: 1707
精华帖: 25
回复:s7-200 smart自由口收不到数据


只看楼主 4楼 2020-01-16 20:11:59
以下是引用手机用户20191224695181在2020-01-14 22:52:30的发言 >3楼

第一部分,plc分别向驱动器发送初始化命令,驱动器收到,并返回了数据,正确!第二部分,plc将pc的命令解析后分别将速度命令发送给驱动器,第一驱动器收到命分,plc将pc的命令解析后分别将速度命令发送给驱动器,第一驱动器收到命令,电机也转动了,驱动也返回数据了(通过串口助手检测到的),但是接收缓存区里没有数据。

以下是引用Zaxife在2020-01-14 21:01:29的发言 >2楼:建议自己画流程图来...

引用2楼详细内容:

建议自己画流程图来分析吧。

单纯的靠空想是很不负责任的。

还有你哟用的是啥通讯协议,不是每种通讯协议都返回数据的。


PLC直接跟驱动器通讯返回数据但PLC不认,PLC跟串口助手通讯返回数据PLC能正常识别,有可能是驱动器没按通讯协议要求接收数据后延时一段时间再返回,而是接收数据后立刻返回造成PLC接收的数据帧前面几个字节没完整接收所以判断数据帧无效。或者是PLC发送完成后没有直接切换为接收状态导致漏接数据。

1、P0、P1通讯口是使用不同的SMB,绑定不同的中断,你有正确配置了么,会不会P0、P1的SMB搞乱了?中断绑定搞乱了?

2、一般的RS485通讯协议吧,先完成当前的任务后才能进入新的任务,如果你在P0的中断函数里面不判断P1的任务状态直接切换P1的收发使能,P1通讯就不满足协议逻辑咯。

3、一般通讯任务都是放到主程序里面处理的,保证不同的通信口通讯不会影响到另外一个通信口正在进行的任务。


 
以下网友喜欢您的帖子:

  
侠圣

经验值: 2346
发帖数: 322
精华帖: 4
回复:s7-200 smart自由口收不到数据


只看楼主 5楼 2020-01-16 20:54:47

检查SMB87设置,

你说的没返回数据分两种情况:1,要确定PLC指令信息是否发给了11号站,发送的指令信息是否正确,这是返回信息的前提。

2,  11号站确实返回数据,但PLC并不一定认为是有效数据。如果你用的是RVC指令。SMB87设置不对会忽略或终止接收到的信息,再有RVC指令接收完成后必须再次启动该指令才能再次接收信息,不然你可能只能接收到一次信息。PLC端口0是否接收信息可以启动  8 号中断事件,在中断程序中设置个累加器以监视接收字符数量的变化。


 
以下网友喜欢您的帖子:

  
  • 上一页
  • 1
  • 下一页
×
扫描打开手机版
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。