菜鸟:
我的单片机是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
还有:020E00000000E400036
在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;就正式启动变频器了。