回复:很菜的问题,csc校验码的计算?

风尘子

  • 帖子

    27
  • 精华

    0
  • 被关注

    0

论坛等级:新手

注册时间:2011-05-01

普通 普通 如何晋级?

发布于 2011-05-01 14:13:31

13楼

通信的是什么变频器?
我用过与ACS510通信,变频器为从站,200为主站,变频器说明中说明了modbus协议中40001寄存器为控制字,40004为状态字,并说明了其中每一位的含义,还有4000X什么的为给定值(频率)、实际值(频率、电流)。地址对应的含义是可以在变频器参数中设置的。
然后200中通信只需要在OB1中调用MBUS_CTRL初始化modbus,然后调用MBUS_MSG进行收发数据就可以了。
但请注意MBUS_MSG收发数据是异步的,不要认为你调用完这个方法数据收发就完毕了,是否完毕需要判断输出的Done的值,譬如与1号变频器通信Done为TRUE之后再与2号变频器通信。
MBUS_CTRL参数:
Baud:波特率,请与变频器参数设置一致 我一般用9600
Parity:奇偶校验,请与变频器参数设置一致 我一般用0 无
Timeout:超时时间,如果变频器未在线,则超过此时间就返回,即超过该时间MBUS_MSG中的Done参数才会设置为TRUE并设置错误代码。我一般用1000,即1秒
MBUS_MSG参数:
First:要发送时给一个上升沿指令
Slave:从站地址,请与变频器中设置的站地址对应
RW:0为读数据 1为写数据
Addr:寄存器地址 4000X这种
Count:数据大小(字)读写Addr起始地址的Count个字
DataPtr:对应200PLC中的地址 读数据时为目的地址 写数据时为源地址
例如:
Slave:2
RW:1
Addr:40001
Count:3
DataPtr:&VW1000
含义就是往地址设置为2的变频器中写入40001、40002、40003三个寄存器,内容是VW1000写入40001、VW1002写入40002、VW1004写入40003,如果对应ABB的变频器即VW1000为控制字、VW1002为给定值1(频率)、VW1004为给定值2(未使用)写入到变频器了。
读也是一样的。

最后,通信反应慢或者不能通信,注意启用终端电阻。
评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-200

共有33288条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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