我在用VB写一个用计算机和艾默生ev1000变频器通讯的程序。但是有几点不明白。寄存器地址3200的意义为控制命令字,3201为主设定?是什么意思为什么说明书上的应用举例用寄存器地址3200设定变频器频率?为什么不用寄存器地址3202设定变频器频率?整个说明书看的我云山雾照求助呀。我的说明书版本是V1.7.我看网上有的资料说3201这个寄存器地址在ev1000里没有用,在ev2000里才有意义。但是在说明书上的控制命令字节的说明里还有当第9个字节为1时主设定有效的。
另外就是说明书通讯附录的最后给的通讯应用举例,说设定变频器点动正转,寄存器地址是3200,命令是00D0根据控制命令的字节说明应该是主设定无效。而设定变频器频率50HZ,是寄存器地址3200 字节数 4 个 命令是 01C7,1388 。 为什么不用寄存器地址3202命令1388,这样直接设定?说明书看不懂呀。求助

解决方案 »

  1.   

    对了,我的变频器的数据格式19200bps,1,7,1。是不是每个字节,1个校验位,7个数据位,1个停止位。
    但是我的mscomm控件,不让设定成19200,1,7,1的格式。哪我该怎么设定呢?
    通讯协议时 modbus ascii 模式 ,校验方式是LRC 补码。不懂呀求助
      

  2.   

    合法的奇偶校验值。设置值 描述 
    E 偶数 (Even) 
    M 标记 (Mark) 
    N  缺省 (Default) 
    None   
    O 奇数 (Odd) 
    S 空格 (Space)
     
    缺省值是:MsComm1.Settings = "9600,N,8,1"
      

  3.   

    我的串口通讯扩展卡到了,经过试验用19200,N,7,2 模式可以正常对变频器发送命令。改变频率,开机运行都能正常执行。但是我收不到EV1000变频器的任何信号。光能给变频器发命令,变频器的回应也收不到。我读取变频器状态的命令也没用。哪个能说说怎么回事。
    接受代码是 时间控件timer里,定义inputstr 字符型全局变量每毫秒执行一次。
    if mscomm3.portopen = false then mscomm3.portopen = true 
    inputstr = mscomm3.input
    text1.text = inputstr + text1.texttext1.text里始终也没有接受信息。
      

  4.   

    如果是我的话我就去对方的网站上看看,有没有电子版的说明书或二次开发的DEMO,实在没有的话就去工控网找找,再不行就用谷歌搜索
      

  5.   

    指令肯定正确,因为我设定变频器频率,和启动变频器频率。变频器都正常执行了。就是我没收到变频器应该给我发送的应答。我看了,设定的也不是串口通讯方式是广播式的。因为我修改了从机地址。给变频器设定了01的地址。LRC校验设定的是,先求和然后转成字符型,取右子串两位,在转回数值型被255减,加一。应该没错呀?要是错了就不应该变频器正确执行命令了?另外,我读取变频器状态的命令也不能执行。根本收不到数据。还有就是我用的是研华PCI 1602B 的485串口扩展卡,有隔离保护,有浪涌保护。能不能是隔离保护,把数据信号当作噪声给隔离掉了?我的串口助手只能看com1到com4但是485口是com5和com6.研华自带的工具,我看只能接受,不能发送数据。485串口还需要我先发送命令然后才能向我发送响应,该怎么办呀?
    我的设定变频器命令是帧头010632011300+(lrc校验)+帧尾,能正确执行。求助呀。
    我研华的卡不能这么垃圾吧?