用户登陆 用户注册
您的位置:首页> 技术文章>内容正文
西门子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                  //变频器通讯地址为1pc0.1=3                  //通讯波特率9.6kpc0.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 1ld     sm0.0movw   16#ffff, lw6                //将16位crc校验寄存器lw6全置为1network 2 ld     sm0.0for    lw8, +1, lw4                //对待发送数据字节个数(lw4)计数(lw8)循环network 3 ld     sm0.0xorb   *ld0, lb7                   //使待发送数据的第一个字节(*ld0)与                                   //crc校验寄存器低位字节(lb7)进行异或运算network 4 ld     sm0.0incd   ld0                         //ld_0指向待发送数据的下一个地址network 5 ld     sm0.0for    lw10, +1, +8                //对每字节8位二进制数计数(lw10)循环network 6 ld     sm0.0srw    lw6, 1                      //crc校验寄存器lw6右移一位network 7 ld     sm1.1                       //若移位后的溢出值sm1.1为1xorw   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.0movb   16#49, smb30                //设置自由通信口格式movw   +0, smw90                   //空闲行间隔检测时间0ms movw   +5, smw92                   //字符间定时器超时检测时间5msmovb   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-06 15:41:00) 流量统计