1785-L46C15--全新备件,火爆上市
功能介绍
伟创AC60系列变频器内置国际标准的MODBUS(从站)通信协议,配合RS485通信模块,可非常方便的实现远程通讯控制功能。
二、S7-200的自由口通信模式说明
S7-200系列PLC有一种特殊的通信模式:自由口通信模式。在这种通信模式下。用户可以在自定义的通信协议(可以在用户程序中控制通信参数:选择通信协议、设定波特率、设定校验方式、设定字符的有效数据位)下,通过建立通信中断事件,使用通信指令,控制PLC的串行通信口与其它设备进行通信。只有当CPU主机处于RUN工作方式下(此时特殊继电器SM0.7为1)才允许自由通信模式,此时S7-200失去了与标准通信装置进行正常通信的功能。当CPU主机处于STOP工作方式下时,自由通信模式被禁止,PLC的通信协议由自由通信协议自动切换到正常的PPI通信协议。
三、下面以西门子S7-200系列PLC为例,介绍PLC与变频器建立通讯并实现对变频器起停、频率给定、监控、发送广播指令等功能的控制。
变频器作为MODBUS协议从站接收来自CPU226 PLC的通信指令。
一、 变频器在与CPU226通信前须做好以下准备工作:
1.确认已安装好AC60系列485通信模块;
2.用一根带9针阳性插头的串口通信电缆连接在CPU226 PLC的自由通信口端(PORT0或PORT1),电缆另一端的第3、8线分别接在CHV变频器A+、B-端子上;
3.预先设置变频器以下参数:
H-66=0//变频器设为从站
H-67=1 //变频器通讯地址为1
H-69=3 //通讯波特率9.6K
H-68=1 //(E、8、1)//通讯数据偶校验
E-01=2 //变频器的运行采用通讯方式
E-02=6 //变频器的给定频率设定采用通讯方式
二.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)
伟创AC60变频器内置的MODBUS协议采用RTU传输格式,只是采用了部分MODBUS从协议(只支持03、06、08H这三种命令)通信速率比ascii 模式更快。该格式使用CRC校验方式对每次发出或接收的数据帧进行校验。因此,该子程序使用了多个局部变量,以方便其它子程序调用。
在西门子STEP 7-Micro/Win 编程环境下(如图)
通信初始化 (PORT0)
CRC校验子程序
三、S7-200PLC与n台变频器的连接图(单对子布线)
笔者曾为客户作过PLC与第三方温度仪表的通讯,现呈给各位,请指正。
所用PLC为OMRON C200HE-CPU42,配通讯模块C200HW-COM06,使用其A口(RS485)与温度表TTM-120通讯。
1、所用温度仪表“神王”TTM-120通讯协议:
EIA标准:RS485
通讯:站 1~31
传输:半双工
通讯码:ASCll 7位(BCC除外) 8位(MSD位=0)
接口方式:2线制
通讯速度:1200,2400,4800,9600
通讯距离:500Mmax
字符:启动位:1位
停止位:1/2位
数据:7/8位
校验:无/奇/偶
BCC校验:预先/不选择
通讯地址:1~99
通讯格式:
读数据:STX(02H 起始码)+地址(2位)+R+标识码(3位)+ETX(03H 结束码)
仪表返回:STX(02H 起始码)+地址(2位)+ACK(06H 响应)+标识码(3位)+数据(5位)+ETX(03H 结束码)
写数据:STX(02H 起始码)+地址(2位)+W+标识码(3位)+ 数据(5位)+ETX(03H 结束码)
仪表返回:STX(02H 起始码)+地址(2位)+ACK(06H 响应)+ETX(03H 结束码)
错误信息响应:STX(02H 起始码)+地址(2位)+NAK(15H 错误响应)+错误格式(1位)+ETX(03H 结束码)
2、用协议宏软件CX-PROTOCOL作协议宏程序
可用用CX-PROTOCOL中现有的系统标准协议COPY到新建的程序中,再作修改,当然也可重新编制。
在新建的程序的DEVICES中选择所用的PLC型号,
通讯口A参数设置方式为:PROTOCOL MACRO;并以仪表的通讯格式设置波特率等参数。
协议宏程序中有若干内容:主要是发送信息列表;接受信息列表;这两个表是协议宏的基本程序。再有就是具体的发送形式和接受形式,其它功能的读写形式,仪表的其它功能的读写形式。
我作了四种,根据仪表协议中的各个格式,编制宏程序,如下:
发送信息列表:
①写数据:SD(01)_1
<h>:STX
<t>:ETX
数据形式:变量格式($(R(2),5))
地址格式:ASCll变量格式($(R(1),2)
"W":写请求
标识符(仪表功能参数:写入设定值)“空格SV”
数据格式:<h>+<a>+"W"+" SV"+($(R(2),5))+<t>
② 读请求:SD(02)_1
地址格式:ASCll变量格式($(R(1),2)
"R":读请求
标识符(仪表功能参数:读入过程值)“PV1”
数据格式:<h>+<a>+"R"+"PV1"+<t>
接受信息列表:
①接受响应:RV(01)_1
"ACK":响应接受
数据格式:<h>+<a>+"ACK"+<t>
②接受数据:RV(02)_1
数据形式:变量格式(&(W(1),*)) 存入PLC指定的接收数据
数据格式:<h>+(&(W(1),*))+<t>
写入命令设置:
编号:050
命令:发送&接受
发送命令:SD(01)_1
接收命令:RV(01)_1
读入命令设置:
编号:051
命令:发送&接受
发送命令:SD(02)_1
接收命令:RV(02)_1
编制设置完成,下装到PLC中。
3、用CX-PROGRAMMER作通讯程序
程序用协议宏指令PMCR完成与仪表的通讯:
三个操作数:一:控制字:端口+协议宏序列号
二:发送数据首址 占2/3个字,首字是指令字数;下一字为仪表地址;
对于写命令要多一个字为设定值
三:接收数据首址 占4个字,首字是命令字数;下两字是接收的5位数据。
对于写命令该操作数为虚设字,没有实际意义
读指令:PMCR #1051 端口=1 序列号051(读出)
DM0000 DM0000=#0002 DM0001=#0001
DM0030 DM0030=#0004 DM0031~DM0033=数据
写指令:PMCR #1050 端口=1 序列号050(写入)
DM0020 DM0020=#0003 DM0021=#0001 DM0022=设置值
DM0040(虚设)
协议宏执行标志:端口一(A):α机为IR289.08 CQM1H为IR207.08
端口二(B):α机为IR289.12 CQM1H为IR207.12
当这变量=0时,方可执行PMCR命令
每个端口只能执行一个通信序列,可以不同的时间段产生PMCR指令的执行脉冲。
4、对于若干个仪表,每表设置不同的站号,就可由程序分别对其作读写操作,只有地址相符的仪表才能响应。Yaskawa JANCD-MB21-3 CNC Board [PZ2]
Yaskawa JANCD-MB21 CNC Board [PZ2]
Yaskawa JANCD-CP01B CNC Board [PZ2]
Hitachi Seiki 16-03-02-00 CNC Board [PZ2]
Yaskawa JANCD-CP07D CNC Board [PZ2]
Yaskawa UTMAH-B12AF ***FREE SHIPPING*** ENCODER [PZ4]
Fanuc A290-0521-V581 Motor Encoder Pulse Coder [PZ4]
Fanuc A860-0201-T001 Pulse Generator [PZ4]
Fanuc A860-0315-T101 Pulse Coder [PZ4]
Fanuc A860-0324-T002 ABS Pulse Coder Unit [PZ4]
Dynapar HS35102473447 [PZ4]
BEI ELECTRONICS H25D-SS-120-ABZ?C-7406R-SM18 [PZ4]
Yaskawa TFUE-20ZD7 FEEDBACK UNIT [PZ4]
HEIDENHAIN R0D4265000 [PZ4]
Fanuc A860-0202-T001 Pulse Generator [PZ4]
Mitsubishi OSE104 Internal Encoder [PZ4]
Yaskawa UTOPE-600YN [PZ4]
Fanuc A860-0201-T002 Pulse Generator [PZ4]
Danaher S5601024J4BL [PZ4]
Fanuc A860-0200-T020 Pulse Generator [PZ4]
Canon BH2-0384 [PZ4]
Fanuc A860-0300-T002 Pulse Coder [PZ4]
Sumtak MGH-10BC Encoder [PZ4]
Yaskawa UTOPE-300FC80 Internal Encoder [PZ4]
Sumtak HPY-10B Encoder [PZ4]
Yaskawa TFUE-25ZC7 Feedback Unit [PZ4]
Sumtak MGZ-10B Encoder [PZ4]
Yaskawa UTMAH-B12BBFA Encoder [PZ4]
Yaskawa UTOPI-150YR-B Encoder [PZ4]
Fanuc A860-0326-T102 ABS Pulse Coder Unit [PZ4]
Kuroda Precision Industries Ltd. PC-1024ZLH-6K-6?8-Z1 Encoder [PZ4]
Yaskawa UTOPI-600UB Encoder [PZ4]
BEI ELECTRONICS XH25D-SS-12.500?-T5-ABZC-8830-L?ED-SM18 [PZ4]
Okuma ER-JD7200D Internal Encoder [PZ4]
Yaskawa UTOPH-40AWM Encoder [PZ4]
Yaskawa PRES-3C3C-1500 Encoder [PZ4]
Dynapar HR5260256BAA101 [PZ4]
Fanuc A860-0320-T111 [PZ4]
Yaskawa TFUE-15ZC7 FEEDBACK UNIT [PZ4]
Fanuc A860-0304-T121 Pulse Coder [PZ4]
Fanuc A290-0561-V531 Motor Encoder Pulse Coder [PZ4]
Sumtak HPX-10B [PZ4]
Sumtak MGX-10B Manual Pulse Coder [PZ4]
Yaskawa UTOPH-20AWM Internal encoders [PZ4]
Yaskawa TFUE-18ZD7 Feedback units [PZ4]
Mitsubishi OSA104 Internal encoders [PZ4]
Fanuc A860-0320-T112 Internal encoders [PZ4]
Yaskawa TFUE-08ZC7 Feedback units [PZ4]
Yaskawa UTOPH-600VB Internal encoders [PZ4]
Okuma OSM-01-2HAZ5 Manual Pulse Coder [PZ4]
Yaskawa UTOPH-500VB Internal encoders [PZ4]
Yaskawa TFUE-05ZC7 Feedback units [PZ4]
Okuma ER-JG-7200D Internal encoders [PZ4]