4 系统的软件实现WWW_PLCJ-S_COM-PLC-技.术_网(可-编程控-制器技术-门户)
系统的软件设计主要包括:变频器功能参数的设定,变频器控制信息的发送和运行状态的动态显示,转速和织物伸长率的设定及处理。WWW_PLC※JS_COM-PLC-技.术_网(可编程控※制器技术门户)
4.1 交流调速器的功能参数设定WWW_PL※CJS_COM-PLC-技.术_网
在工程实际中,利用PMU控制面板对变频器的串口进行配置,6SE70型变频器有SCom1和SCom2两个串口,工程实际中用SCom1。变频器串口的配置如附表。WWW_P※LCJS_CO※M-PLC-技-.术_网
WWW_P※LCJS_COM-PLC-)技.术_网
经过上述设置,变频器应答报文内容如图4所示。报文的总长度是20字节,PZD域5字,PKW域3字。WWcW_PLCJS_COM-PLC-技.术_网
WWW_PLCJ-S_COM-PLC-技.术_网(可-编程控-制器技术-门户)
4.2 变频器运行状态的监控和数据处理的软件设计WWW_PLCJS※COM-PLC-技.术_网(可※编程控※制器技术门户)
本项目中利用贝加莱2005系列PCC来实现变频器的监控和数据处理。贝加莱2005系列PCC除了支持标准的通信协议(如485,CAN等)之外,还向用户提供了用于与第三方产品通信的协议开发工具——帧驱动器,用户只需要了解第三方产品的通信协议细节(包括信息帧格式的组成等),并用帧驱动器写出与第三方产品通信协议一样的通信规则,就可方便地实现PCC与第三方产品之间的通信。帧驱动器存放在应用程序ROM中,它完全控制了通信的硬件部分,而不改变帧的形式。通常数据通信,对数据进行读写操作时,用户必须对端口的细节了解得很清楚,才能通过编程实现对接口各管脚进行的操作。而帧驱动器将这些操作集中起来,用户不必知道接口的细节(只须知道接口地址),就可以通过帧驱动器命令直接传输读写数据。其提供的函数如下:WWW_P※LCJS_COM-PLC-)技.术_网
FRM_xopen:初始化接口,为帧驱动器分配缓存,安装相关的中断处理程序。WWW_PLCJS@_COM%-PLC-技.术_网
FRM_read:读数据并将其放在读缓存区。WW.W_PLC※JS_C,OM-PL,C-技.术_网
FRM_rbuf:释放读缓存区。P_L_C_技_术_网——可——编——程——控-制-器-技——术——门——户
FRM_gbuf:申请写缓存区。WWW_P※LCJS_COM-PLC-)技.术_网
FRM_writ:将数据写入写缓存区。P.L.C.技.术.网——可编程控制器技术门户
FRM_robot:释放写缓存区。WW.W_PLCJS_COM-PLC-技.术_网
FRM_close:接口通信结束。WWW_PLCJS@_COM%-PLC-技.术_网
FRM_ctrl:接口控制。——可——编——程——控-制-器-技——术——门——户
(1)串口初始化W1WW_P4LCJS_COM-PLC-技.术_网
串口使用前必须初始化,设置串口操作所需要的参数。程序初始化时,需使用FRM_xopen(enable,adr(device),adr(mode),adr(config),status,ident)函数。其中,enable:使能端,为1时,函数才能执行;device:定义接口设备的字符串地址;mode是用来定义接口参数的字符串地址,其字符串格式为:WW.W_PLCJS_COM-PLC-技.术_网
“[〈TYPE〉>,[〈BAUD〉>,[〈PARITY〉>,[〈DATA BITS〉>,[〈STOP BITS〉>,[〈OPTION〉>”,TYPE为通信接口的类型,要与实际硬件相符;BAUD为波特率;PARITY为校验类型;DATA BITS为数据位的个数;STOP BITS为停止位的个数;OPTION为可定义硬件握手。Config为接口配置结构的地址;status为数据传输状态标志,0表示没有错误;ident为帧驱动识别号,供所有其它的函数使用,注意该函数对每个接口只能执行一次,应在任务的初始化中调用。WW.W_PLC※JS_C,OM-PL,C-技.术_网
串口初始化程序必须放在程序的初始化部分,即仅在首次扫描时运行初始化程序。本次课题串口初始化程序如下:WWW_P※LCJS_CO※M-PLC-技-.术_网
strcpy(ADR(string_device),"SL2.SS1.IF2");表示模块地址2号槽的子模块上的第2个接口WWW_P※LCJS_COM-PLC-)技.术_网
strcpy(ADR(string_mode),"RS485,38400,e,8,1");RS-485接口,波特率为38400b/s,1个偶校验位,8个数据位,1个停止位config_struct.idle=4;最大的空闲时间,单位:一个字符的传送时间WWW_PLCJS@_COM%-PLC-技.术_网
config_struct.tx_cnt=1;发送缓冲区的数目WWW_PL※CJS_COM-PLC-技.术_网
config_struct.rx_cnt=1;接收缓冲区的数目WWW_PLCJS_COM-PLC-技.术_网
config_struct.tx_len=20;发送缓冲区的最大长度WWW_PLCJ-S_COM-PLC-技.术_网(可-编程控-制器技术-门户)
config_struct.rx_len=20;接收缓冲区的最大长度——可——编——程——控-制-器-技——术——门——户
config_struct.argc=0;argc/argv:两个相匹配参数是为定义扩展参数而设置的config_struct.argv=0;初始化接口WWW_PLCJS@_COM%-PLC-技.术_网
FRM_xopen_01.enable=1P_L_C_技_术_网——可——编——程——控-制-器-技——术——门——户
FRM_xopen_01.device=ADR(string_device)——可——编——程——控-制-器-技——术——门——户
FRM_xopen_01.mode=ADR(string_mode)plcjs.技.术_网
FRM_xopen_01.config=ADR(config_struct)WW.W_PLC※JS_C,OM-PL,C-技.术_网
FRM_xopen_01 FUB FRM_xopen();打开接口WWW_PLC※JS_COM-PmLC-技.术_网
status_open=FRM_xopen_01.status;获取状态WWW_PLC※JS_COM-PLC-技.术_网(可编程控※制器技术门户)
frm_ident=FRM_xopen_01.ident;获取帧驱动器识别号P_L_C_技_术_网——可——编——程——控-制-器-技——术——门——户
(2)变频器控制字的发送程序设计plcjs.技.术_网
为PCC编写的控制字发送程序,共有三步,其程序流程图如图5所示。WW.W_PLC※JS_C,OM-PL,C-技.术_网
WWcW_PLCJS_COM-PLC-技.术_网
第一步,向帧驱动器申请缓冲区,用FRM_gbuf函数;WWW_PLC※JS_COM-PmLC-技.术_网
第二步,将要发送的数据写入发送缓冲区。只需将数据依次拷贝到第一步所申请的缓冲区中,用系统库中的函数STRCPY()或MEMCPY()函数;WWW_PLCJS※COM-PLC-技×术_网(可编程控※制器技术门户)
第三步,命令驱动器传输数据。调用帧驱动器库函数FRM_writ,由帧驱动器(实际上是硬件)完成写操作。如果状态返回值不为零(需判断),则用函数FRM_rbuf释放缓存。WW.W_PLCJS_COM-PLC-技.术_网
部分程序如下:WWW_P※LCJS_COM-PLC-)技.术_网
......P.L.C.技.术.网——可编程控制器技术门户
FRM_gbuf_01.enable=1WWW_PLC※JS_COM-PmLC-技.术_网
FRM_gbuf_01.ident=frm_identWW.W_PLCJS_COM-PLC-技.术_网
FRM_gbuf_01 FUB FRM_gbuf();申请写缓存区 P_L_C_技_术_网——可——编——程——控-制-器-技——术——门——户
send_buffer=FRM_gbuf_01.buffer;获取发送缓存区地址WWW_PLC※JS_COM-PLC-技.术_网(可编程控※制器技术门户)
send_buffer_length=FRM_gbuf_01.buflng;获取发送缓存区长度WWW_P※LCJS_CO※M-PLC-技-.术_网
status_gbuf=FRM_gbuf_01.status;获取状态 WWW※PLCJS_COM-PL#C-技.术_网(可编※程控※制器技术门户)
IF(status_gbuf=0)THEN;判断状态WWW_P※LCJS_CO※M-PLC-技-.术_网
write_data[0>=2;报文头 WWW_PLCJS※COM-PLC-技.术_网(可※编程控※制器技术门户)
write_data[1>=18;报文长度WWW_P※LCJS_COM-PLC-)技.术_网
write_data[2>=3;站地址WWcW_PLCJS_COM-PLC-技.术_网
write_data[3>=193;十六进制为C1WWW_P※LCJS_COM-PLC-)技.术_网
write_data[4>=178;十六进制为B2(C1B2表示改变参数P434的值)WWW.PLCJS.COM——可编程控制器技术门户
write_data[5>=0;参数标号为1WWcW_PLCJS_COM-PLC-技.术_网
write_data[6>=1;WWcW_PLCJS_COM-PLC-技.术_网
write_data[7>=E;参数值来自触摸屏伸长率WWW_PLCJS_COM-PLC-技.术_网
write_data[8>=F; WWW_P※LCJS_CO※M-PLC-技-.术_网
write_data[9>=149;控制字为95FFWWW※PLCJS_COM-PL#C-技.术_网(可编※程控※制器技术门户)
write_data[10>=255;WWW_PLCJ-S_COM-PLC-技.术_网(可-编程控-制器技术-门户)
write_data[11>=a;给定频率来自触摸屏WWW.PLCJS.COM——可编程控制器技术门户
write_data[12>=bW1WW_P4LCJS_COM-PLC-技.术_网
write_data[13>=cWWW_PLC※JS_COM-PmLC-技.术_网
write_data[14>=dP_L_C_技_术_网——可——编——程——控-制-器-技——术——门——户
write_data[15>=0WWW_PLCJ-S_COM-PLC-技.术_网(可-编程控-制器技术-门户)
write_data[16>=0WWW_PLCJS_COM-PLC-技.术_网
write_data[17>=0plcjs.技.术_网
write_data[18>=0WWW_PLC※JS_COM-PLC-技.术_网(可编程控※制器技术门户)
write_data[19>=write_data[0> XOR write_data[1>XOR write_data[2> XOR write_data[3> XOR write_data[4> XOR write_data[5> XOR write_data[6>XOR write_data[7>XOR write_data[8>XOR write_data[9>XOR write_data[10>XOR write_data[11>XOR write_data[12>XOR write_data[13>XOR write_data[14>XOR write_data[15> XOR write_data[16>XOR write_data[17>XOR write_data[18> WWW_PLCJS_COM-PLC-技.术_网