QQ登录

只需一步,快速开始

单片机USS控制变频器440启动

[ 复制链接 ]
单片机USS控制变频器440启动我的单片机是89C52类型的,链接芯片是MAX485,在PC上已经调试了串口通信,可以正常收发数据。在和变频器的通信中,我将PKW设置为0,PZD为2,所以报文为:0x02,0x06,0x00,0x04,0x7F,0x40,0x00,0x00
目前的问题是,单片机和变频器链接后,没有反应。我在R2025里看到了已经接收到了报文,每次8个,但在R2028和R2029里也有数字变动,似乎是错误的报文数目。请问是怎么回事,应该如何设置报文格式?谢谢


---------奇偶校验设置了没有呢?应该用偶校验。


---------R2025?它哪里是收到的报文?
R2025是拒收的错误报文数量。R2028和R2029是指校验错误和没有起始标志。也就是说整个报文都是错误的。
具体的报文格式在MM440大全里有详细说明。


------我已经设置了偶校验了,那么现在R2028USS奇偶错误和R2027USS超时错误已经没有问题了,现在就是R2029 USS不能识别起始点错误,请教是怎么回事,应该如何设置报文起始点,谢谢!我的报文格式是:0x02,0x06,0x00,0x04,0x7F,0x40,0x00,0x00


-------RS485的+、-不要弄错了,最好把电脑也连上监视通讯报文。


--------报文完全不对。按照大全给出的报文结构来做!047F也不对!校验也没有。


---------我现在按照大全给出的报文结构来定义报文结构,如下:
unsigned char code message[length]={0x02,0x0E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x7F,0x40,0x00,0x00};
校验位我是通过前面的数据异或得到的。RS485的+ -完全是按照说明书来的,还是报文起始点报错,请教这是为什么,感谢!如果控制字不是用047F的话,请问用啥?谢谢。

------我看到USS报文格式是1位起始位,8位数据位,1位偶校验,1位停止位,这个起始位是不是要自己写,而不是使用单片机本身自加的呢?谢谢


--------我采用的是SCON = 0xC0;工作模式3.


-----我如此初始化单片机有无错误。谢谢
SCON = 0xC0;
TMOD= 0x20;
PCON= 0x80;
TH1 = 0xFA;       
TL1 = 0xFA;
TR1 = 1;

------我看到有文章说,主站在每个STX前定义了一个至少2个标志执行时间的启动间隔,请问这个启动间隔如何定义呢?我采用的波特率是9600,感谢!


--------你试试用电脑串口调试助手发送报文,串口参数设置一致,看看有没有返回数据
如果变频器有响应,说明通讯报文没问题了,那你再用单片机发送以上报文,用电脑串口调试助手接收看是否正常。

--------我的报文格式是:020600047F40003F
还有:020E000000000000000000047E400036
在PC上利用串口调试助手发送,变频器没有响应,不知正确的报文格式是啥?有没有高手利用PC调试过,谢谢!

--------端口设置 是 8N1。
PC、PLC、单板机、单片机都可以和变频器通讯。通讯不能建立就是 没有遵守规范

------你这是以HEX方式发送的吗?我测试这样的报文变频器有响应,变频器通讯相关参数是默认设置。


--------对,我是用HEX方式发送到,变频器方面,除了P0700=5,P1000=5之外,其余都是默认设置。


-----------和 P0700=5,P1000=5没有关系!你用端子控制和电位器给定模式并不影响通讯!!!
变频器接收到的报文是在R2018中(假定你是通过29、30端子)!一共8个PZD字(是字!!!)只不过显示的是十进制的。
第一个是控制字。你把每一位都代表什么搞清楚。
正确的应该是hex 047E=1150,如果正确你再下一步。然后再说其他的。

-----------对,在R2018中,数组下标1的是1150,数组下标2的是16384。请教我下一步该怎么弄?谢谢


---------单片机收发口总是处于接收状态。发送后立即转入接收状态,等待变频器响应报文。最大等待响应时间按照波特率选择(见置顶帖的表);无响应重发一次。再等待一个周期后退出。下一个地址。
然后重复。
不管响应报文有多快,维持时间发送间隔。成为轮询状态。
发送047F变频器启动。(你需要知道控制字047E每一位的含义,写出来。)
第二个字是给定16384=H4000=100%额定频率。
全部都正确后;再设置P0700=5;P1000=5;就正式启动变频器了。

-----我发送报文:02 06 00 04 7F 40 00 3F之后,变频器没有启动,一直处于HZ 0.00 ~ HZ50.00轮换闪烁的状态,我的P0700和P1000已经设为5了。而且我的第二个字是16384,为什么你的第二个字是16484呢?谢谢。


------不是告诉你了吗?先发送47E,收到应答,再发送47F。
如果轮询停了,变频器也停了。

---------你好,这个问题我已经搞定了,现在的情况是单片机的问题,我在单片机里如此定义命令:0x02,0x06,0x00,0x04,0x7F,0x40,0x00,0x00。好像这样写的话,变频器判断错,但是如果按照这样格式写的话:02 06 00 04 7E 00 00 7E。单片机又判断不了,这该如何解决呢?谢谢


---------0x02,0x06,0x00,0x04,0x7F,0x40,0x00,0x00
这样写最后一个字节校验码是错的,当然不对了,校验码是3F啊

--------对,我现在把命令写死了,现在命令如下:0x02,0x06,0x00,0x04,0x7E,0x00,0x00,0x7E。我看了下变频器,目前有一个地方出现了错误,就是R2029里出现了数字变动,说明这样报文的开头是错的?谢谢


-------不知道为什么同样的指令,在串口通信助手里发就可以,而在单片机里发就不行呢?谢谢


-----好了这个问题我搞定了,谢谢啊。主要原因是我在每个字符之间加了延迟,去掉就可以了!
回复

使用道具 举报

快速回复 返回列表 客服中心 搜索