表4-2-1 通讯请求数据格式
② 写入数据时从变频器到LPC2148的发送数据
表4-2-2 写入数据时的返回数据格式
③ 读出数据时从变频器到LPC2148的应答数据
表4-2-3 读出数据时的应答数据格式
④读出数据时从LPC2148到变频器的发送数据
表4-2-4 读出数据时的发送数据格式
20
备注:? 变频器站号可用十六进制在H00~H1F(站号0~31)之间设定。
? *3表示控制代码。 ? *4表示CR或LF代码
当数据从LPC2148传输到变频器时,在代码CR(回车)和LF(换行)自动设置到数据组的结尾。因此,变频器的设置也必须根据LPC2148来确定。 并且,可通过n11选择有无CR和LF代码。
? *5通信参数n7“等待时间设定”≠“- - -”时,数据格式里没有“等待
时间”,请作成通讯请求数据。(字符数减少1个。)
(2) 数据定义 ① 控制代码
表4-2-5 控制代码
以写入频率为例,按照通讯请求数据的格式定义要发送的数组,依次发送ENQ,变频器站号,设定频率写入的指令代码,要写入的频率值,总和校验。其中总和校验不包括ENQ。注意,数据在LPC2148和变频器之间使用ASCII 码传输。 ② 变频器站号 规定与LPC2148通讯的变频器站号。
③ 指令代码 由LPC2148发给变频器,指明程序要求(例如:运行,监示)。因此,通过相应的指令代码,变频器可进行各种方式的运行和监示。(参照使用三菱变频器使用说明书中的参数数据代码一览表)
④ 数据 表示变频器的频率和参数等的写入,读出数据。根据指令代码决定设定数据的定义和设定范围。(参照使用三菱变频器使用说明书中的参数数据代码一览表)
21
⑤ 等待时间
规定变频器收到从LPC2148发来的数据和传输应答数据之间的等待时间。根据LPC2148在0和150ms之间设定等待时间,最小设定单位为10ms。(例;1:10ms,2:20ms)
图4-2-2 变频器数据处理时间计算
⑥ 总和校验码 把被检验数据的ASCII码变成代码,用2进制加算(总和),其结果的个位(8位)变换成16进制的2位ASCII码,此码就是总和检验代码。 例1: LPC2148 → 变频器
图4-2-3 LPC2148 → 变频器发送数据代码
例2: 变频器 → LPC2148
图4-2-4 变频器 → LPC2148返回数据代码
⑦ 错误代码
22
如果变频器在接收数据时发现任何错误,它的定义和NAK代码一起被送回到LPC2148。
注意:
1.当从LPC2148发来的数据有错误时,变频器将不接受此数据。
2.任何数据的通讯都是在LPC2148给出通讯请求后开始例如:运行指令、监示等。没有LPC2148的指令,变频器不会返回任何数据。因此,对于监示,在设计程序时让LPC2148提出读数请求是必要的。
表4-2-6 部分指令代码 操作指令 指令代码 数据内容 正转 HFA H02 反转 HFA H04 停止 HFA H00 频率写入 HED H0000~H2EE0 频率输出 H6F H0000~H2EE0 电流输出 H71 H0000~HFFFF 电压输出 H72 H0000~HFFFF LPC2148向三菱变频器型号为FR-S500发布运行频率输出为120HZ数据格式如图4-2-5与发送指令子程序如下所示:
图4-2-5 LPC2148 → 变频器输出频率为120HZ数据格式
LPC2148 → 变频器输出频率为120HZ数据指令发送子程序: unsigned int i=0;
unsigned char cmd[12] = { 0x05,0x30,0x31,0x36,0x46,0x31,0x32,0x45,
0x45,0x30,0x46,0x46}; //指令数据
/*发送一个字节子程序*/
void Sent1_Byte(unsigned char data) {
23
U1THR = data;
// 发送数据
while( (U1LSR&0x40)==0 ); // 等待数据发送完毕 }
/*发送指令子程序*/ void Send_data() {
for(i = 0;i < 12;i++) {
Sent1_Byte(cmd[i]); } }
4.3 LPC2148与变频器通讯设计
4.3.1 LPC2148与单台变频器通讯的设计
变频器与LPC2148通讯前必须在变频器的初始化中设定通讯规格并复位变频器,否则通讯不能进行。[13] [14]需要设定的通讯规格包括变频器站号、通讯速率、字节长、停止位长、校验方式、等待时间等。通讯规格的设定可通过写入相应的参数来实现。
图4-3-1 LPC2148与单个变频器间的连线
LPC2148串口与变频器通讯程序的流程图如图4-3-2、图4-3-3所示:
24