CAN转485通信问题

已锁定

Kimi#7

  • 帖子

    8
  • 精华

    0
  • 被关注

    1

论坛等级:新手

注册时间:2020-11-23

普通 普通 如何晋级?

CAN转485通信问题

1162

5

2020-11-23 14:49:51

手头有个项目用的是1214的CPU,需要用到CAN总线,考虑过CM CANopen 021620-B模块,但是不巧这个模块只能用于CAN2.0A,所以只能用第三方的CAN转485模块。


模块采用固定的个是转换,每一帧CAN报文都转换出13个字节长度的数据:


CPU组态了CM1241模块,用自由口通讯来接收和发送串口数据。测试时发现CAN总线上发送两个ID报文,每条的数据都间隔100ms加1,在PLC端仿真看两个ID的数据是不同步的在自增,一会第一个ID的数据在涨,第二个ID的数据不变,一会第二个ID的数据涨,第一个ID的不变……


这里还想问下RCV_PTP和Receive_P2P功能块的区别,我现在用的是RCV_PTP,说明里说EN_R在上升沿启用接收,但是我实际发现一直给TRUE也是可以接收的。我使用Receive_P2P就没有接收成功过数据,这是什么原因?


这是我功能块的配置图:



同时我做了个NDR的上升沿捕捉计数器,发现只有程序第一次运行的时候涨了一次,后面就一直不涨。


另外我发送用的是Send_P2P功能块。CM1241和转换器的连接用的是422四线制全双工,发送和接收是单独处理的。


我的疑问在于CAN转换器是收到总线上的报文立刻进行转换的,当总线上的报文很多时,同一时刻在串口端只会发出一帧对应的CAN报文,也就是13个字节,如果串口这边还没读完,下一帧转换的数据又来了,就有可能读不到了。我也咨询过转换器的技术,说CAN波特率和串口波特率要差不多,现在CAN是250K,串口这边已经是115200了。出现这种现象是我的接收处理有问题还是用这样的方法只能实现这样的效果?望高手们指点,不胜感激!

CAN转485通信问题 已锁定
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-1200系列

共有13049条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

top
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。