用户登陆 用户注册
您的位置:首页> 技术文章>内容正文
西门子PLC与英威腾CHV系列变频器通信
[正文]:导读: 以西门子s7-200系列plc为例,介绍plc与chv矢量变频器建立通讯并实现对变频器起停、频率给定、监控等功能的控制。
一.功能介绍  英威腾chv系列矢量变频器内置国际标准的modbus(从站)通信协议,配合chv系列变频器专用通讯卡,可非常方便的实现远程通讯控制功能。
通讯卡上提供rs232及rs485两种物理通讯端口,用户可通过设置卡上的跳线选择。
  下面以西门子s7-200系列plc为例,介绍plc与chv矢量变频器建立通讯并实现对变频器起停、频率给定、监控等功能的控制。
  变频器作为modbus协议从站接收来自cpu224 plc的通信指令,。
  chv系列矢量变频器在与cpu224通信前须做好以下准备工作:  1.确认已安装好chv系列矢量变频器的通讯卡,并将卡上的端口跳线置于rs485端;  2.用一根带9针阳性插头的串口通信电缆连接在cpu224 plc的自由通信口端,电缆另一端的第5、3、8线分别接在chv变频器rs485通讯卡的gnd、485+、485-端子上,其余线屏蔽不用;  3.预先设置变频器以下参数:  pc0.0=1 //变频器通讯地址为1  pc0.1=3 //通讯波特率9.6k  pc0.2=1 //通讯数据偶校验  p0.01=2 //变频器的运行指令采用通讯方式  p0.03=7 //变频器的a频率设定采用通讯方式二.plc内存使用说明  西门子s7-200系列plc的自由通讯端口编程必定会用到两个指令,即xmt(发送)指令和rcv(接收)指令。
编写程序时需要为这两个指令指定数据缓冲区,一般以最低位数为0的地址作为数据缓冲区的起始地址。
  1.发送指令xmt缓冲区(写/读)  vb100 //xmt指令要发送的字节个数  vb101 //变频器通讯地址(01)  vb102 //modbus功能码(06/03)  vb103 //变频器被写地址高位/变频器被读起始地址高位  vb104 //变频器被写地址低位/变频器被读起始地址低位  vb105 //被写数据高位/被读数据字个数高位  vb106 //被写数据低位/被读数据字个数低位  vb107 //被发送数据crc低位  vb108 //被发送数据crc高位  2.接收指令rcv缓冲区  vb200 //rcv指令要接收的字节个数  vb201 //变频器地址(01)  vb202 //modbus功能码(06/03)  vb203 //变频器被写地址高位/被读数据字节个数高位  vb204 //变频器被写地址低位/被读数据字节个数低位  vb205 //被写数据高位/被读数据高位  vb206 //被写数据低位/被读数据低位  vb207 //被接收数据crc低位  vb208 //被接收数据crc高位  vb217 //被接收数据crc验算低位  vb218 //被接收数据crc验算高位 2.crc校验子程序(sbr0)   英威腾chv系列矢量变频器内置的modbus协议采用rtu传输格式,该格式使用crc校验方式对每次发出或接收的数据帧进行校验。
因此,该子程序使用了多个局部变量,以方便其它子程序调用。
  在西门子step 7-micro/win 编程环境下(如图一),需要在该子程序的局部变量表中预先设定以下局部变量:  
点击查看大图片
  (1)输入型局部变量(var_input)  1d_0:dword; // 待发送数据地址指针变量  lw_4:word; // 待发送数据字节个数变量  (2)输出型局部变量(var_output)  lb_6:byte; // crc校验值高位变量  lb_7:byte; // crc校验值低位变量  (3)临时局部变量(var)  lw_8:word; // 待发送数据字节个数计数变量  lw_10:word; // 待发送数据每字节8位二进制数计数变量  network 1  ld sm0.0  movw 16#ffff, lw6 //将16位crc校验寄存器lw6全置为1  network 2  ld sm0.0  for lw8, +1, lw4 //对待发送数据字节个数(lw4)计数(lw8)循环  network 3  ld sm0.0  xorb *ld0, lb7 //使待发送数据的第一个字节(*ld0)与  //crc校验寄存器低位字节(lb7)进行异或运算  network 4  ld sm0.0  incd ld0 //ld_0指向待发送数据的下一个地址  network 5  ld sm0.0  for lw10, +1, +8 //对每字节8位二进制数计数(lw10)循环  network 6  ld sm0.0  srw lw6, 1 //crc校验寄存器lw6右移一位  network 7  ld sm1.1 //若移位后的溢出值sm1.1为1  xorw 16#a001, lw6 //则使值16#a001与lw6进行异或运算  network 8  next //结束每字节8位二进制数计数循环  network 9  next //结束每数据帧字节个数计数循环        3. 初始化子程序(sbr1)  该程序在plc的第一个扫描周期运行,主要是设置cpu224自由端口的通信格式、数据接收格式及复位各寄存区(参见西门子s7-200编程手册)。
  通信格式内容包括:波特率9.6k、每字节位数8位、偶校验等(注意与变频器一致)。
  数据接收格式完全参照modbus rtu格式设定,以不少于3.5个字节传输时间的通信口空闲间隔作为数据接收的开始及结束信号。
根据协议,plc 在准备接收数据前会先监测通信口是否空闲,如连续空闲时间超过了3.5个字节的传输时间,则plc默认数据接收开始,此后通讯口上出现的信息即被认为是一个数据帧的内容。
同理,随着一个数据帧的最后一个字节传输完成,又会出现一个3.5字节传输时间的空闲间隔,来表示一个数据帧传输的结束。
(参见 modbus协议标准及chv系列矢量变频器通讯卡使用说明书)      对9.6k的通信波特率来说,3.5个字节传输时间约为5ms左右。
因该程式的每个指令只准备接收一个数据帧的回馈信息,所以接收数据前的空闲检测时间可设为0,即plc在发出数据后立即开始接收数据,但一个数据帧的传输结束空闲检测时间仍需设为5ms以上。
  network 1  ld sm0.0  movb 16#49, smb30 //设置自由通信口格式  movw +0, smw90 //空闲行间隔检测时间0ms  movw +5, smw92 //字符间定时器超时检测时间5ms  movb 20, smb94 //接收信息的最大缓冲区20字节  movb 148, smb87 //设置自由通信口的数据接收格式  fill +0, qw0, 1 //输出印象寄存区复位  fill +0, mw0, 1 //标志寄存区复位  fill +0, vw100, 5 //发送缓冲区复位  fill +0, vw200, 5 //接收缓冲区复位  atch int_0, 23 //接收完成中断  atch int_1, 9 //发送完成中断  eni //在全局启用中断


网站首页 培训课程 维修指南
技术文章 家电专栏 供应信息
求购信息 培训资讯 展会信息
电脑专栏 教程下载 资料下载
常用软件 PLC教程 PLC资料
变频伺服 低压电器 维修资料
人机界面 自控仪表 工控机类
文章标题: 搜文章
中国工控资源网手机版 2012
电话:010-67577139 13811659603
培训咨询QQ:657167934 471895637 销售咨询QQ:623769457
联系邮箱:zggkzyw@163.com
 京ICP备11002135号
报时(2026-04-02 06:12:21) 流量统计