PLCEthernet通信.docx
《PLCEthernet通信.docx》由会员分享,可在线阅读,更多相关《PLCEthernet通信.docx(17页珍藏版)》请在冰豆网上搜索。
PLCEthernet通信
PLCEthenet通信
一、总那么:
提高设备互联互通,自我诊断修复能力。
二、设备互联标准
设备操纵器选用要求
PLC必需带有以太网接口,支持TCP/IP协议,网速10M/100M自适应。
制造商选择范围
PLC:
三菱,型号可选FX3GE;FX3UC+FX3U-ENET-ADP;FX3U+FX3U-CNV-BD+FX3U-ENET-ADP;FX5系列;Q03;Q04;Q06;Q12带有以太网接口的PLC。
嵌入式操纵器:
BACKHOFF。
型号CX90x0或CX50x0系列。
通信协议
三菱PLCFX3系列用MC协议。
三菱FX5和QPLC用SLMP协议。
BACKHOFF嵌入式操纵器用ADS协议。
操纵系统布局与布线。
一个系统(机器)只有一个主控PLC或嵌入式主操纵器。
当系统多个机柜时,只有一个机柜装主操纵器,其它机柜只能装散布式I/O模块或从站模块。
散布式I/O模块或从站模块仅用于读取本机台传感器信号及操纵本机台执行机构。
严禁跨机柜接传感器和执行机构操纵线。
散布式I/O模块和主操纵器之间用总线通信方式,以方便机台的拆分和组装。
三菱PLC系统
Q系列:
此系列属于中大型PLC,最大点数可达4096点,可用于多机柜(最多支持7个)散布式操纵系统中。
系统结构如以下图1所示。
注意:
扩展电线总长不要超过米。
图1三菱Q系列PLC操纵系统结构
FX系列:
此系列属于小型PLC。
FX3GA、FX3GC、FX3GE操纵规模128点,利用CC-link远程I/O可达256点。
FX3U及FX3UC操纵规模256点,利用CC-link远程I/O可达384点。
FX系列PLC用于单机柜或双机柜设备中,不得用于三机柜及以上的设备中。
跨机柜的操纵线必需是接线线端子台电缆线或CC-LINK总线。
I/O线不得跨机柜串接。
FX3GA、FX3GC必需加装FX3U-CNV-BD转换模块和FX3U-ENET-ADP以太网模块,才能接MES.
IQ-F系列:
此系列操纵规模256点,利用CC-link远程I/O可达512点。
此系列自带以太网接口,运行速度是FX3系列的150倍,也用于单机柜或双机柜设备中。
在系统中,假设PLC上以太网口被HMI、伺服驱动等其他设备占用,须加装工业级互换机一台。
BACKHOFF嵌入式系统
CX50x0系列与CX90x0系列:
那个下系列嵌入式操纵器有2个独立的LAN接口。
2个部份都能够以10/100/1000Mbit的速度运行。
CPU模块(X001)上二个中一个独立的Ethernet接口被设定为EtherCAT接口。
用于散布式总线操纵设备中。
图2BACKHOFF嵌入式系统结构
三、通信协议详解。
三菱PLC通信协议。
FX3系列PLC用以太网连接时可用MC协议。
Q系列和IQ-F系列PLC用RS485连接时才可用MC协议,当用以太网连接时用SLMP协议。
GXWorks2通信设置
以太网通信需设置PLCIP地址打开GXWorks2软件,在左侧的资源治理器中点“工程”,点开“参数”目录树,点击“PLC参数”,点击“以太网参数”选择卡,输入PLC的IP地址,如图3所示。
点击“打开设置”,在第二行的“打开方式”被选择MC协议,本站端口号中输入“1026”,点击“设置终止”,如图4所示。
点击“检查”,无错误后点“设置终止”。
图3三菱PLCIP设置
图4以太网端口设置
MC协议
MC协议是可编程操纵器通信方式的名称,用于使对方设备通过以太网适配器进行可编程操纵器软元件数据的读出/写入等。
只要对方设备侧能够嵌入应用程序,并依照MELSEC可编程操纵器的协议(A兼容1E帧子集)收发数据,即可利用MC协议通信访问可编程操纵器。
MC帧格式:
图5MC协议格式
1)报头
报头为TCP/IP、UDP/IP用报头。
在可编程操纵器侧,以太网适配器会进行附加、删除,因此无需用户设置。
2)副题目
副题目的格式组成如下。
图6:
副题目格式
0x00:
读位元件;0x01:
读字元件;0x02:
写位元件;0x03:
写字元件。
3)PC号
PC号固定为FFH。
a)二进制码通信时,以二进制值表示PC号。
b)ASCII码通信时,以16进制数的ASCII码表示PC号。
4)监视按时器
这是用于设置在以太网适配器向可编程操纵器发出读出/写入要求后到返回结果之间等待时刻的按时器。
a)设置值能够如下指定。
0x0000(0):
无穷等待(一直等到可编程操纵器返回响应。
)
0x0001~0xFFFF(1~65535):
等待时刻(单位250ms)
b)要进行正常的数据通信,建议依照通信对象,在1~40~10秒)的设置范围内利用。
5)字符区(命令)
字符区(命令)中显示以太网适配器命令等内容,用于表示对方设备向对象可编程操纵器站进行数据读出/写入时利用的功能。
字符区(命令)部份的数据内容和排列因利用的功能不同而异。
各项功能下数据的排列如下:
a)起始地址:
四字节长度,低字节在前,高字节在后。
b)软元件类型:
双字节长度.D:
0x200x44;R:
0x200x52;TN:
0x4e0x54;TS:
0x530x54;CN:
0x4e0x43;CS:
0x530x43;X:
0x200x58;Y:
0x200x59;M:
0x200x4d;S:
0x200x53。
c)软元件点数:
1字节长度
6)字符区(响应)
字符区(响应)显示对方设备向对象可编程操纵器站进行数据读出/写入后的读出数据/处置结果等。
字符区(响应)部份的数据内容和排列因利用的功能不同而异。
各项功能正常终止时数据的排列如下:
7)终止代码
用以下值显示对方设备向对象可编程操纵器站进行数据读出/写入后的处置结果。
0x00:
正常终止
0x00之外:
异样终止(0x50~0x60)
a)二进制码通信时,以二进制值表示终止代码。
b)ASCII码通信时,以16进制数的ASCII码表示终止代码。
c)异样终止时,请依照10章的故障排除,确认内容并采取方法。
当终止代码为5BH/线须“5B”时,后面会紧随着异样代码(10~18H)的数据和00H/“00”。
8)异样代码
对方设备向对象可编程操纵器站进行数据读出/写入后的处置结果异样,终止代码为0x5B/“5B”时显示异样内容。
(异样代码:
0x10~0x18).
a)二进制码通信时,以二进制值表示异样代码。
b)ASCII码通信时,以16进制数的ASCII码表示异样代码。
MC协议通信例如:
例1:
上位机读M100~M107数据时发送:
0x000xff0xa00x000x640x000x000x000x200x4d0x080x00.
PLC应答:
0x800x000x000x010x100x11
其中0x80:
应答特点字
0x00:
终止码
上例应答表示:
M100=0;M101=0;M102=0;M103=1;M104=1;M105=0;M106=1;M107=1.
例2:
上位机写M100~M107时发送:
0x020xff0xa00x000x640x000x000x000x200x4d0x080x000x110x100x010x00
此例表示M100写入1;M101写入1;M102写入1;M103写入0;M104写入0;M105写入1;M106写入0;M107写入1。
PLC应答:
0x820x00
例3:
上位机读d100~d107时发送:
0x010xff0xa00x000x640x000x000x000x200x440x080x00.
此例表示上位机读D100~D107里数据。
PLC应答:
0x810x000x100x000x110x100x210x040x010x110x2d0x330xcc0x3c0xc30x550xcc0x33
此例表示:
D100=0x0010;D101=0x1011;D102=0x0421;D103=0x1101;
D104=0x332d;D105=0x3ccc;D106=0x55c3;D107=0x33cc;
例4:
上位机写D100~D107时发送:
0x830xff0xa00x000x640x000x000x000x200x440x080x000x100x000x110x100x210x040x010x110x2d0x330xcc0x3c0xc30x550xcc0x33。
PLC应答:
0x830x00.
此例表示:
D100写入0x0010;D101写入0x1011;D102写入0x0421;D103写入0x1101;
D104写入0x332d;D105写入0x3ccc;D106写入0x55c3;D107写入0x33cc;
SLMP协议
SLMP用于IQ-F和Q系列PLC通过以太网连接与上位机通信。
GXWorks3PLCIP设置
打开GXWorks3,在资源治理器被选择“Navigation”选择卡,展开“Project”目录,点击“ModuleConfiguration”项,如图7所示。
在右边的“ModuleConfiguration”窗口中,右键点击CPU模块,在右键菜单被选择“Parameter”,在下一级菜单被选择“InputdetailedConfigurationInformationWindow”,如图8所示。
在弹出的窗口中的“IPAddress”输入PLCIP地址。
图7:
模块初始化
图8:
IP地址输入选单
图9:
IP地址输入窗口
上位机从PLC读数据的指令报文帧格式:
(上位机->PLC).
图10:
上位机读PLC指令及响应
上位机向PLC写数据指令及响应
图11:
上位机向PLC写数据及PLC响应
1)帧头:
TCP/IP帧头,无需用户设定。
2)幅帧头:
分指令报文和响应报文两种。
指令报文:
0x5000;响应报文:
0xD000.
3)请求目标网络号和请求目标站号(PC号):
关于FX5(IQ-F)PLC来讲,请求目标网络号固定为0x00;请求目标站号固定为0Xff.
4)请求目标模块I/O编号:
关于FX5(IQ-F)PLC来讲是0x03ff;
5)请求目标多点站号:
关于FX5(IQ-F)PLC来讲是0x00;
6)数据长度:
后面保留(双字节)、指令(双字节)、子指令(双字节)加上数据字节长数量之和,即数据字节长度+6;
7)保留字:
双字节,固定为0x0000.
8)指令与子指令:
0x020x140x000x00:
随机指定软元件编号,以16位为单位,将数据写入位软元件,或是以1字或2字为单位,将数据写入字软元件。
0x020x140x010x00:
随机指定软元件编号,以1位为单位,将数据写入位软元件。
0x060x040x000x00:
以位软元件和字软元件的n点为1块,随机指定多个块读取数据。
(指定位软元件时,1点中以16位为对象。
)
0x010x040x010x00:
以位单位读取;0x010x040x000x00:
以字单位读取;
0x060x140x000x00:
以位软元件和字软元件的n点为1块,随机指定多个块写入数据。
(指定位软元件时,1点中以16位为对象。
)
例5上位机以位为单位读M100~M107时发送指令:
0x500x000x000xff0xff0x030x000x0b0x000x000x000x010x040x010x000x640x000x000x900x080x00;
PLC响应:
0xd00x000x000xff0xff0x030x000x060x000x000x000x010x100x110x00;
读出的数为M100=0;M101=1;M102=1;M103=0;M104=1;M105=1;M106=0;M107=0;
例6上位机读D100~D107时发送指令:
0x500x000x000xff0xff0x030x000x0b0x000x000x000x010x040x000x000x640x000x000xa80x080x00;
PLC响应:
0xd00x000x000xff0xff0x030x000x120x000x000x000x010x100x110x000x3a0x440x740x4a0x8c0x350x830xa40xe40x8f0x230x33;
读出的数据为:
D100=0x0110;D101=0x1100;D102=0x3a44;D103=0x744a;D104=0x8c35;D105=0x83a4;
D106=0xe48f;D107=0x2333;
例7上位机以位为单位写入M100~M107时发送指令:
0x500x000x000xff0xff0x030x000x0b0x000x100x000x020x140x010x000x640x000x000x900x080x000x010x100x110x00;
写入结果是:
M100写入0;M101写入0;M102写入0;M103写入1;M104写入1;M105写入1;
M106写入0;M107写入0;
例8上位机以字单位写入D100~D107时发送指令:
0x500x000x000xff0xff0x030x000x0b0x000x000x000x010x040x000x000x640x000x000xa80x080x000x010x100x110x000x3a0x440x740x4a0x8c0x350x830xa40xe40x8f0x230x33;
写入结果时D100写入0x0110;D101写入0x1100;D102写入0x3a44;D103写入0x744a;D104写入0x8c35;D105写入0x83a4;D106写入0xe48f;D107写入0x2333;
PLC资源分派:
M0~M499为易失性辅助继电器,即在关闭电源后,数据将丢失。
M500~M7999是非易失性辅助继电器,在关闭电源后,数据将得已保留。
D0~D127是易失性数据寄放器,关闭电源后,数据将丢失。
D127~D7999为非易失性数据寄放器,关闭电源后数据将得已保留。
非易失性辅助继电器可当易失性辅助继电器用,只需在PLC初始化脉冲中将其复位即可。
非易失性数据寄放器可当易失性寄放器用,只需在PLC初始化脉冲中将其清零即可。
所有的状态继电器都是易失性继电器,在没有启用步进转移功能时,可当辅助继电器(M继电器)用。
时刻继电器T0~T199,分辨率,T200~T245:
分辨率;T246~T249:
1ms分辨率,累计型;
T250~T255:
100ms分辨率,累计型;T256~T511:
1ms分辨率,累计型。
BECKHOFF通信协议
ADS通信协议
ADS通信是Beckhoff公司概念的一种专门协议,用于TwinCAT设备之间的非周期性通信,既可用于操纵器内部的TwinCAT设备通信,也能够用于操纵器之间的TwinCAT设备通信。
ADS通信是基于TCP/IP之上的应用协议,因此当它用于操纵器之间的TwinCAT设备通信时,需要保证操纵器之间的TCP/IP通信正常,支持有线连接和无线连接。
采纳无线以太网连接时,ADS通信需要的时刻更长。
ADS通信的机制是Server/Client机制。
作为ADSServer不需要任何ADS通信方面的编程。
Server能够对协议约定的ADS请求作出响应。
ADS通信能够实现多种功能,比如设备状态、设备操纵等等,但最常常利用的仍是数据访问。
为此,必需了解ADS设备的内部地址或变量与ADS访问地址之间的对应关系。
所有ADS设备都支持按地址访问,但有的同时还支持变量名访问。
第1种:
按地址访问
ADS设备的以“Group”来划分不同的数据区域,每一个数据区域用“IndexGroup”来识别,区域内的数据就按Offset依次排列。
不同的ADS设备,“IndexGroup”划分规那么不同,而持续的“Offset”依次对应的数据也不同。
常常利用的ADS设备有TwinCATPLC、TwinCATNC、TwinCATIO,其中TwinCATNC尽管也支持按地址访问,但用户一样是挪用标准的功能块来向NC发指令,这些功能块会挪用ADS指令,确信要访问的数据的IndextGroup和Offset,而无需用户直接面对这些数据。
第2种:
按变量名访问
TwinCATPLC默许支持变量名访问,而TwinCATNC的轴变量假设是要通过变量名访问,就需要启用“CreateSymbol”功能。
按变量名访问ADS设备,最典型的应用确实是通过电子示波器软件ScopeView显示PLC或NC变量的实时曲线。
ModbusRTU
ModbusRTU协议运行于RS232或RS485等串行通信接口上,Master/Slave的通信模式,Master连番访问各个Slave的数据。
当TwinCATPLC通过ModbusRTU与触摸屏通信时,PLC是Slave,触摸屏是Master。
当TwinCATPLC通过Modbus与温控器、流量计等智能设备通信时,PLC是Master,智能设备是Slave。
可用的模块有KL6021,KL6041,EL6021,EL6022。
从PLC程序实现ADS通信
TwinCATPLC既能够做ADSServer也能够做ADSClient。
要在两套PLC之间做ADS通信,用户能够自己决定其中一台做Server,另一台做Client。
Server端不需要任何通信程序,只是提供数据给Client访问。
Client端编写PLC程序实现ADS通信,需要挪用。
如下图:
图12:
这些功能块都有一路的输入变量:
NetID:
对方设备所在的TwinCAT系统的NetID,空白不填,表示本机不同PORT间的通信。
Port:
对方设备的端口号,比如第1套PLC为“801”
IDXGRP:
要访问的数据组,比如输出区%QW为“16#F030”
IDXOFFS:
要访问的数据地址,比如地址%QW300为“300”
LEN:
读或写的字节数。
指以IDXOFFS为起始地址,持续读或写多少字节。
DESTADDR或SRCADDR:
目的地址(读)或源地址(写),比如ADR(Data1)。
READ或WRITE:
ADS通信是事件触发式,此处为读写的触发信号,上升沿有效。
TMOUT:
报警延时,默许500MS,为“T#500MS”。
从高级语言实现ADS通信
从高级语言实现ADS通信,事实上这段应用程序就作为一个ADSClient。
TwinCAT提供了多种ADS通信的接口文件,供高级语言挪用,以成立一个ADSClient对象。
比如,VC需要挪用DLL动态链接库,而VB需要挪用OCX控件。
在VisualC++中进行链接和程序开发时所需要的文件:
–动态链接库
–利用的函数库
–声明ADS功能的头文件
–声明结构和常数的头文件
要紧接口:
AdsPortOpen:
成立TwinCAT信息路由器连接(通信口)。
AdsPortClose:
关闭TwinCAT信息路由器的连接(通信口)。
AdsGetLocalAddress:
返回本地NetId和端口号
AdsSyncWriteReq:
同步写数据到一个ADS设备
AdsSyncReadReq:
从ADS效劳器中同步读数据。
AdsSyncReadWriteReq:
同步写入数据到ADS效劳器中并从ADS设备接收返回的数据。
AdsSyncReadStateReq:
从ADS效劳器中读ADS状态和设备状态。
AdsSyncAddDeviceNotificationReq:
通知在ADS效劳器中进行概念(如PLC)。
当某个事件发生时,该功能(回调功能)在ADS客户端进行挪用(C程序)。
AdsSyncDelDeviceNotificationReq:
从ADS效劳器中删除以前概念的通知。
四设备数据搜集
1、设备运行状态数据:
正常运行、停机、待机、待料、设备异样信息、设备利用率、设备爱惜信息治理(耗材寿命治理)。
2、设备自检功能,同时,不按时自检,将自检数据输出到远程效劳器中。
3、有远程诊断功能,通过各类各样的搜集装置完成,如各类信号和反馈传感器、执行器和PLC等输出的数据和原始数据进行对照,判定设备是不是正常运行。
4、生产统计功能,产量、生产周期、生产率、耗材利用统计、FPY等。