当前位置:首页 > 芯闻号 > 充电吧
[导读]通讯程序设计在自动化系统的应用越来越广泛,例如plc与操作界面的数据交换,通过通讯对变频器的控制,plc的连网等等。要想实现plc的通讯编程,首先所选的plc必须有强大的通讯能力,就是说plc的操作系

通讯程序设计在自动化系统的应用越来越广泛,例如plc与操作界面的数据交换,通过通讯对变频器的控制,plc的连网等等。
要想实现plc的通讯编程,首先所选的plc必须有强大的通讯能力,就是说plc的操作系统能够支持多种通讯格式,通常一种品牌的plc如果能够提供给用户更多的编程自由度,那么这种品牌的技术开发能力就越强大,大多数品牌只能提供固定格式的通讯格式或协议,这就大大局限了plc与其他智能设备的数据交换。
我们的plc产品具有RS232和光电隔离的RS485两个自由通讯口,两个通讯口可以同时收发数据,几乎可以适应所有通讯格式,可以提供CRC和BCC等多种校验方式。
以一台PLC通过485通讯控制多个某品牌的变频器为例:
如果该变频器的波特率是9600b/s,8个数据位,奇校验,1个停止位。那么首先必须在plc的嵌入C窗口的初始化代码区编程一个通讯口设置语句:Set485Port(9600,o,8,1);仅仅一个语句就完成了对485通讯口的编程。
由于485通讯必须设定主从关系,这里是plc控制多台变频器,所以plc必须设置为主,因此还需在初始化代码区增加一个地址和主从设定语句:SetAddress(1,MASTER);事实上,对于主控制器来说,地址已经失去意义。
 通讯口已经设置完毕,下面就是如何根据要求将数据发送给变频器。
   例如一组8字节控制数据如下所示:
   01h ---->变频器编号
   03h ---->命令
   21h ---->两字节参数地址
   02h
   00h ---->两字节参数
   02h
   CRC --->两字节CRC校验马
   CRC 
   
   PLC程序:
   Set485TBAddPointer(0);
   AddNumberTo485TB(0x1);
   AddNumberTo485TB(0x3);
   AddNumberTo485TB(0x21);
   AddNumberTo485TB(0x2);
   AddNumberTo485TB(0x0);
   AddNumberTo485TB(0x2);
   AddCRCTo485TB();
   Start485Transmit();
三菱FX系列PLC编程口通信协议总览
该协议实际上适用于PLC编程端口以及 FX-232AW 模块的通信。感谢网友visualboy提供。
通讯格式:
命令 命令码 目标设备 
DEVICE READ CMD "0" X,Y,M,S,T,C,D 
DEVICE WRITE CMD "1" X,Y,M,S,T,C,D 
FORCE ON CMD " 7" X,Y,M,S,T,C 
FORCE OFF CMD "8" X,Y,M,S,T,C 
传输格式: RS232C
波特率: 9600bps
奇偶: even
校验: 累加方式(和校验)
字符: ASCII 
16进制代码: 
ENQ 05H 请求 
ACK 06H PLC正确响应 
NAK 15H PLC错误响应 
STX 02H 报文开始 
ETX 03H 报文结束 

帧格式:
STX CMD DATA ...... DATA ETX SUM(upper) SUM(lower) 
例子:
STX ,CMD ,ADDRESS, BYTES, ETX, SUM
02H, 30H, 31H,30H,46H,36H, 30H,34H, 03H, 37H,34H
SUM=CMD+......+ETX;
30h+31h+30h+46h+36h+30h+34h+03h=74h;
累加和超过两位取低两位
命令格式
1、 DEVICE READ(读出软设备状态值)
计算机向PLC发送:
始 命令 首地址 位数 终 和校验
STX CMD GROUP ADDRESS BYTES ETX SUM
例子:从D123开始读取4个字节数据
02h 30h 31h,30h,46h,36h 30h,34h 03h 37h,34h
地址算法:address=address*2+1000h
再转换成ASCII
31h,30h,46h,36h
PLC返回
STX 1ST DATA 2ND DATA ..... LAST DATA ETX SUM
注:最多可以读取64个字节的数据
例子:从指定的存储器单元读到3584这个数据
02h 33h 35h 38h 34h 03h 44h,36h

2、DEVICE WRITE(向PLC软设备写入值)
始 命令 首地址 位数 数据 终 和校验
STX CMD GROUP ADDRESS BYTES 1ST DATA 2ND DATA ...... LAST DATA ETX SUM
例子:向D123开始的两个存储器中写入1234,ABCD
02h 31h 31h,30h,46h,36h 30h,34h 33h,34h,31h,32h,43h,44h,41h,42h 03h 34h,39h
PLC返回
ACK (06H) 接受正确
NAK (15H) 接受错误

3、位设备强制置位/复位
FORCE ON置位
始 命令 地址 终 和校验
STX CMD ADDRESS ETX SUM
02h 37h address 03h sum
FORCE OFF复位
始 命令 地址 终 和校验
STX CMD ADDRESS ETX SUM
02h 38h address 03h sum

PLC返回
ACK(06H) 接受正确
NAK(15H) 接受错误
设备强制中的地址公式:Address=Address/8+100h

说明:
1.帧中的BYTES表示需要读取或者写入的字节数。
2.地址算法上有说明。
3.累加和是从STX后面一个字节开始累加到ETX的和。

三菱FX系列PLC特殊寄存器地址計算方式
網友反應,網上提供的寄存器地址計算方法(ADDRESS=ADDRESS*2+1000H)不適合D8000以上的特殊寄存器!小弟不自量力地進行一番探究,終於找到了計算方法,好東西不敢獨自享用,希望對大家有用啦.
特殊寄存器地址計算:
(address-8000)*2+E00H;
例:
D8000為:(8000-8000)*2+E00H=E00H;
D8001為:(8001-8000)*2+E00H=E02H;
D8255為:(8255-8000)*2+E00H=1FEH;
三菱FX系列PLC编程口通信源代码
fx_comm.h 
FX系列PLC四种通信模式的特性
  首先讲讲FX系列PLC的通信方式。
  FX系列PLC根据使用的通信模块与协议不同,分为以下四种通信模式:
  1、PLC的N:N通信方式
  2、PLC双机并联通信方式
  3、PLC与计算机专有协议通信方式(无须梯形图,电脑直接读写操纵PLC) 
  4、PLC与计算机无协议通信方式(梯形图RS指令方式,可自定义通信协议) 
  以下将详细列出各通信模式的特性:
  N:N网络 PLC并联 专用协议计算机连接 无协议通信
传输标准 RS485 RS485/RS422 RS485/RS422或RS232
传输距离 500m RS485/RS422:500mRS232:15m
连接数量 8站 1:1 1:N(N<=16) 1:1
通信方式 半双工 FX,FX2c,FXon:半双工FX2n: 全双工
数据长度 固定 7bit/8bit
校验  无/奇/偶
停止位  1bit/2bit
波特率 38400bps 19200bps 300/600/1200/2400/4800/9600/19200
头字符 固定 无/有效
尾字符  
控制线 ------ 
协议 --- 格式1/格式4 无
和校验 固定 无/有效 
适用机型 FX2n,FXon FX2n,FX,FX2c FX2n,FXon,FX,FX2c
FX系列PLC专用协议通信指令一览
 以下将详细列出PLC专用协议通信的指令:
指令 注释  
BR 以1点为单位,读出位元件的状态  
WR 以16点为单位,读出位元件的状态,或以1字为单位,读出字元件的值  
BW 以1点为单位,写入位元件的状态  
WW 以16点为单位,写入位元件的状态,或以1字为单位,写入值到字元件  
BT 以1点为单位,SET/RESET 位元件  
WT 以16点为单位,SET/RESET 位元件,或写入值到字元件  
RR 控制PLC运行RUN  
RS 控制PLC停止STOP  
PC 读出PLC设备类型  
TT 连接测试  
注:位元件包括X,Y,M,S以及T,C的线圈等;
  字元件包括D,T,C,KnX,KnY,KnM等。
FX系列PLC专用协议通信指令格式详解
 约定说明:
     ENQ为请求标志,ASCII值5,VB中以chr(5)表示;
ACK为正确标志,ASCII值6,VB中以chr(6)表示; 
 STX为请求标志,ASCII值2,VB中以chr(2)表示;
 EXT为请求标志,ASCII值3,VB中以chr(3)表示; 
 表格中红色字为需要求和效验的部分;
 和效验为每一项的ASCII值的总和转换成十六进制后区低两位;
 站号、PLC号、元件数量、和效验都是以十六进制表示;
 等待延时为0-150毫秒,以十六进制0H-FH表示,如100ms为AH。
 1、批量读出位元件--BR指令
    格式:
1 2 3 4 5 6 7 8             15 16 17
PC侧: ENQ 站号 PLC号 BR 延时 首地址 数量 和效验       ACK 站号 PLC号
PLC侧:         STX 站号 PLC号 数据 EXT 和效验   
                9 10 11 12 13 14      
   [注] 上述中:1、"PLC号"系统默认为"FF";2、"首地址 "应以十进制表示,如首地址"X0018"表示从X寄存器的第18地址单元开始读取I/O量;3、"数量"表示读取的I/O量个数;4、"和效验"是指从"站号"到"数量"之间的各代码的ASCII码的累加和;5、PLC侧的响应码中"和效验"是指从"站号"到"EXT"之间的各代码的ASCII码的累加和。6、可以读出"X"、"Y"和"M"寄存器的内容。
例如:要读出站号为0的Fx2n系列PLC的X00到X08共9点的状态值,延时100ms,假设采用Communication Format(D8120)的Format 1 方式::
注  释: 请求 站号 PLC号 命令 延时 元件首地址 元件数量 和效验
代  码: ENQ 0 0 F F B R A X 0 0 0 0 0 9 4 2
ASCII码: 05H 30H 30H 46H 46H 42H 52H 41H 58H 30H 30H 30H 30H 30H 35H 34H 32H
  您只要将以上兰色部分的代码以字符串形式(VB中可以表示为CHR(5)&" 00FFBRAX00000942")发送到PLC,就会有正确的回应信息,如下: 
注 释: 头 站号 PLC号 元件首地址 尾 和效验
代 码: STX 0 0 F F 0 0 1 1 0 1 1 0 1 EXT 0 5
ASCII码: 02H 30H 30H 46H 46H 30H 30H 31H 31H 30H 31H 31H 30H 31H 03H 30H 35H
  若发送码有误,则有以下回应:
注 释: 头 站号 PLC号 和效验
代 码: NAK 0 0 F F 0 6
ASCII码: 15H 30H 30H 46H 46H 30H 36H
2、批量读出字元件--WR指令
  格式:
1 2 3 4 5 6 7 8             15 16 17
PC侧: ENQ 站号 PLC号 WR 延时 首地址 数量 和效验       ACK 站号 PLC号
PLC侧:         STX 站号 PLC号 数据 EXT 和效验   
                9 10 11 12 13 14      
  该命令使用方法与1(BR)命令相同,不再赘述。
  3、批量写入位元件--BW指令
  格式:
1 2 3 4 5 6 7 8 9      
PC侧: ENQ 站号 PLC号 BW 延时 首地址 数量 写入值 和效验   
PLC侧:           ACK 站号 PLC号
                  10 11 12
  4、批量写入字元件--WW指令(M寄存器100单元置"1")
  格式:01FFWWAM01000100010C
1 2 3 4 5 6 7 8 9      
PC侧: ENQ 站号 PLC号 WW 延时 首地址 数量 写入值 和效验   
PLC侧: 05H 01 FF  A M0100 01 0001  0C ACK 站号 PLC号
                  10 11 12

FX2系列的PLC与上位机的通信
摘要:对FX2系列的PLC与上拉机的通信实现,提出了一种价格低、体积小的接口方案,讨论了其硬件和软件的设计思想,该接口装置与控制室和实验室环境下运行可靠。
关键词:上位机 通信 接口 可编程控制器
PLC作为一种高性能的控制装置,在分布式系统中得到了越来越广泛的应用。在这种控制方式中,上位监控机系统是其中重要的组成部分。PLC可以多种方式如直接采用现有的组态监控软件与上位监迭机通信,但针对小规模的控制系统,找到一种高性能价格比的通信方法,具有积极的实际意义。本文就日本三菱公司生产的FX2可编程控制器与PC机通信方式的实现,从软、硬件两个方面来说明这个问题。
1 通信装置的硬件描述
  PLC与PC机之间实现通道,可使二者互补功能上的不足,PLC用于控制方面既方便又可靠,而PC机在图形显示、数据处理、打印报表以及中文显示等方面有很强的功能。因此,各PLC制造厂家纷纷开发了适用于本公司的各种型号PLC与PC机通信的接口模块。三菱公司开发的FX-232AW接口模块用于FX2系列PLC与计算机通信。还有与以太网连接的接口模块AJ71E71、与MAP网连接的接口模块AJ71M51-S1、与FAIS MAP网连接的接口模块AJ71M51M1等。不同的通信方式,有着不同的成本价格和不同的适用范围。在此介绍一种通过PC机的RS-232口与PLC进行通信的实现方法。
  FX2系列PLC的编程接口采用RS-422标准,而计算机的串行口采用RS-232标准。因此,作为实现PLC计算机通信的接口电路,必须将RS-422标准转换成RS-232标准。
  RS-232与RS-422标准在信号的传送、逻辑电平均不相同。
  RS-232采用单端接收器和单端发送器,只用一根信号线来传送信息,并且根据该信号线上电平相对于公共的信号地电平的大小来决定逻辑的“1”(-3~-15V)和“0”(+3~+15V);
  RS-422标准是一种以平衡方式传输的标准,即双端发送和双端接收,根据两条传输线之间的电位差值来决定逻辑状态。RS-422电路由发送器、平衡连接电缆、电缆终端负载和接收器组成。它通过平衡发送器和差动接收器将逻辑电平和电位差之间进行转换(+2V表示“0”,-2V表示“1”)。
  选用MAXIM公司的MAX202实现RS-232与TTL之间的电平转换。MAX202内部有电压倍增电路和转换电路,仅需+5V电源就可工作,使用十分方便;选用MAX490实现RS-485与TTL之间的转换。每片MAX490有一对发送器/接收器,由于通信采用全双工方式,故需两片MAX490,另外只需外接4只电容即可。
  PLC的RS-422接口配接DB-25型连接器,而PC机一般用DB-9型连接器。硬件电路图如图1所示。
  将RS-232的RS、CS短接,这样对计算机发送数据来说,PLC总是处于就绪状态。也就是说,计算机在任何时候都可以将数据送到PLC内。又由于DR、ER交叉连接,因此,对计算机接收数据来说,必须等待至PLC处于准备就绪状态。
  2 通信装置的软件描述
  2.1 FX2系列PLC与计算机之间通信协议
  FX2系列PLC与计算机之间的通信采用RS-232标准,其传输速率固定为9600bps,奇偶校验位采用偶校验。数据格式如图2所示。数据以帧为单位发送和接收。一个多字符帧由力所示的五部分组成,其中和校验值是将命令码ETX之间的的呢字符的ASCII码(十六进制数)相加,取得所得和的最低二位数。STX和ETX分别表示该字符帧的起始标起和结束标志。
  FX2系列与计算机之间的通信是以主机发出的初始命令,PLC对其作出响应的方式进行通信的。共有0、1、7、8四种命令,上位机实现对PLC的读写和强行置位。通过ENQ、ACK和NAK,上位机协调与PLC的通信应答。
  2.2 通信过程
  采用Bland C编写主机与PLC的通信程序。首先必须对COM1口进行初始化,波特率为9600bps,奇偶校验位采用偶校验,七位有效数据。通信的初始化检测过程如图4所示。当计算机接收到来自PLC的应答字符ACK后,就可以进入数据通信了。通信的时序图如图5所示。
  计算机可对PLC内各软设备进行读、写和强制ON/OFF操作。除开PLC的计时器和计数器的设定值采用常数时,以及文件寄存器内的数据,FX2系列PLC的所有开关量输入、输出以及各软件设备对计算机都是透明的。其操作时的多字符帧的格式如图3所示。但不同的操作在“多个字符”项内有所不同。例如,计算机对PLC的软设备Y20~Y37进行读操作,查装置地址表为00A2,读取2字节数据。其状态如图6(a)所示,主机发出的命令格式如图6(b)所示,PLC返回的信息如图6(c)所示。
  如传送的命令有错误,PLC返回NAK信号,本次操作失败,重新进行。
  为了保证主机与PLC的通信准确无误,上位机也必须按通信协议进行和校。如接收的信息有误,则重新读取。如重复3次仍不行,则显示错误信息。
  使用C语言很容易实现以上编程。
  主机还可向PLC写数据,进行单点的强近置位和复位。
  对于运行在控制和实验室环境飞速下本方案运行可靠、性价比高、体积小、但是对于通信距离长,环境恶劣的发问,需加光电隔离等措施。

1、将常数10写入数据单元D20
CHR(2)11 028 02 0A00 CHR(3)32
2、将常数0写入数据单元D8014
CHR(2)10 E1C 02 0000 CHR(3)3F
3、对开关量X1置位
CHR(2)7 01 04 CHR(3)FF
4、对开关量X1复位
CHR(2)8 01 04 CHR(3)00
5、对定时器T0线圈置位
CHR(2)7 00 06 CHR(3)00
6、对开关量Y10复位
CHR(2)8 08 05 CHR(3)08
7、对辅助线圈M500置位
CHR(2)7 F4 09 CHR(3)1D
本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

随着工业自动化技术的快速发展,PLC(可编程逻辑控制器)在温度控制领域的应用越来越广泛。然而,在实际应用中,有时会出现PLC显示温度不变化的情况,这不仅影响了生产过程的稳定性和效率,还可能对设备造成损害。本文旨在深入探究...

关键字: plc 可编程逻辑控制器

PLC(可编程逻辑控制器)和单片机是两种不同的控制设备,它们之间存在明显的区别:

关键字: 单片机 plc 控制器

3月3日消息,据工商信息显示,广汽三菱汽车有限公司正式更名为湖南智享汽车管理有限公司,同时三菱自动车工业株式会社、三菱商事株式会社退出股东行列。

关键字: 三菱 新能源

在工业自动化领域,单片机和PLC(可编程逻辑控制器)都扮演着举足轻重的角色。它们作为控制系统的核心,负责监控、控制和管理各种工业设备和流程。然而,尽管它们有着共同的目标,但在结构、功能和应用方面却存在着显著的区别。本文将...

关键字: 单片机 plc (可编程逻辑控制器)

步进电机常用来做定位控制,它可以由PLC输出的脉冲数量控制旋转的角度(相对来说可以是距离),脉冲的频率控制步进电机旋转的速度。

关键字: 步进电机 plc 定位控制

据日经亚洲消息,日本三菱汽车将决定正式停止在中国生产汽车,该公司希望撤回与广汽集团在当地合资企业的投资,但与广汽集团的合资公司或将保留,广汽或将接盘其在华生产基地,目前正在谈判中。

关键字: 三菱 汽车 广汽

西门子S7-400系列的PLC是一款性能强劲的工控设备,广泛应用于各种工业自动化领域。它具有灵活的可编程性、高速响应、良好的抗干扰能力等优点。在该系列中,通讯模块是一项重要的组成部分。本文将详细介绍S7-400PLC的通...

关键字: 西门子 plc S7-400

PLC编程是一种数字运算操作的电子系统,专为在工业环境下应用而设计。它采用可编程序的存储器,用来在其内部存储执行逻辑运算、顺序控制、定时、计数和算术运算等操作的指令,并通过数字式、模拟式的输入和输出,控制各种类型的机械或...

关键字: plc 编程 plc编程

西门子S7-1500PLC是一个模块化控制系统,适用于离散自动化领域内的各种自动化应用。模块化、无风扇设计、易于实现分布式结构以及方便的操作,使得西门子S7-1500成为中、低端应用中各种不同任务的经济、用户友好的解决方...

关键字: 西门子 S7-1500 plc

对新手PLC编程入门,或刚毕业的大学生,或多或少对PLC编程有所了解。学习PLC编程常见的方法就是通过相关的辅导书籍来学习,当然,随着PLC培训班的兴起,去PLC编程培训学校学习也是一种很好的学习方法。

关键字: plc 算术运算 指令
关闭
关闭