6ES7315-7TJ10-0AB0现货供应
松下PLC FP1内部寄存器及I/O配置
在使用PLC之前,要先了解PLC内部寄存器及I/O配置情况,表3-3列出了FP1-C40的内部继电器、寄存器及I/O配置情况。
表3-3 FP1—C40寄存器I/O配置表
名称
符号
编号(地址)
功能说明
外部
输入/
输出
继电
器
X(位)
X0~X12F
(主机X0~X17)
输入继电器
总点数208点,主机24点,用来存储外部输入信号
WX(字)
WX0~WX12(13个字)
Y(位)
Y0~Y12F(主机Y0~YF)
输出继电器
总点数208点,主机16点,用来存储程序运行结果并输出
WY(字)
WY0~WY12(13个字)
内
部
继
电
器
R(位)
R0~R62F
通用内部继电器
只能在PLC内部供用户编程使用,不能用于输出
WR(字)
WR0~WR62
R(位)
R9000~R903F
特殊内部继电器
每个继电器均具有特殊用途,用
户只能使用其接点,不能用程序
控制其状态,不能用于输出
定时器/
计数器
T
T0~T99(默认值100点)
定时器:触点延时动作继电器,其触点序号与定时器序号相同
C
C100~C143(44点)
计数器:记数完毕触点动作,其触点序号与计数器序号相同
SV(字)
SV0~SV143(144字)
T/C的设定值寄存器
其序号与T/C序号一一对应
EV(字)
EV0~EV143(144字)
T/C经过值寄存器
其序号与T/C序号一一对应,每一个T/C均配有一对与之序号相同的SV、EV
数据
寄存器
DT(字)
DT0~DT1659(1,660字)
通用数据寄存器
用来存储PLC内处理的数据
DT9000~DT9069(70字)
特殊数据寄存器
具有特殊用途的数据寄存器,不能存储用户数据
索引、修正值寄存器
IX(字)
IY(字)
IX、IY各有一个字无编号
用来存放地址或常数的修正值
常数
寄存器
K
16位常数(字)
十进制常数(整数)
范围:K-32768~K+32767
32位常数(双字)
范围:
K-2147483648~K+2147483647
H
16位常数(字)
十六进制常数
范围:H8000~H7FFF
32位常数(双字)
范围:H80000000~H7FFFFFFF
对表3-3的说明:
1. 输入继电器X、输出继电器Y、内部继电器R均是按位寻址,而WX、WY、WR是按字寻址,其编号规则相同,以X为例说明如下:
X
位址(用十六进制数表示)
寄存器地址(用十进制数表示)
如X120即WX12寄存器中的第0号位,X12F即WX12中第F位,用图表示如下:
地址:WX12
0
0
0
1
1
1
0
0
0
0
0
0
1
0
1
0
位址:X12F· · · · · · · · · · · · · X120
2. 由表中所示X0~X12F、Y0~Y12F可见,FP1-C40的*大可扩展输入/输出点数为13×16=208(点),即输入、输出总共能扩展为416点。但是受外部接线端子及主机驱动能力限制,一般只能扩展到100~120点,其余可作内部继电器使用。
FP1-C40主机的输入继电器X编号是X0~XF,X10~X17(24点);输出继电器Y编号是Y0~YF(16点)。寄存器地址编号的无效“0”可省略,如X000缩写为X0。
3. 数据寄存DT、定时器T、计数器C的编号均为十进制数。
4. 特殊内部继电器R9000~R903F及特殊数据寄存器DT9000~DT9069,将在后续课程中专门讲解。
5. 内部继电器R,可分为保持型和非保持型。FP1-C40默认值是,R0—R9F为非保持型,R100—R62F为保持型。若想改变其分配方式,可通过改变系统寄存器N0.7的值达到理想分配数(N0.7默认值为k10)。
6. 定时器/计数器
1) 定时器/计数器的指令符号是TM/CT,与它的接点T/C一一对应,且每个定时器/计数器编号都有一组同编号的寄存器SV、EV。
默认设置
类型
定时器/计数器指令号
预置值区SV
经过值区EV
定时器/计数器接点
非保持型
TM0~TM 99
SV0~SV99
EV0~EV99
T0~T99
保持型
CT100~CT143
SV100~SV143
EV100~EV143
C100~C143
2) 定时器/计数器编号是统一编排的,二者共144点。出厂时按定时器在前,计数器在后编号,默认值是T0~T99,C100~C143,即100个定时器44个计数器。编程时可根据实际需要通过改变系统寄存器N0.5(见附表A)中的设定值而改变其编号分配,但定时器/计数器总数不能改变。如若将N0.5、中的值设为K50,则定时器/计数器编号分配为T0~T49(50个)、C50~C143(94个)。
系统寄存器N0.6是指定定时器/计数器保持区首地址的,一般情况将N0.6与N0.5设置为相同数值,所以定时器为非保持型,计数器为保持型,当然也可通过改变N0.6的设定值改变定时器/计数器之保持/非保持类型。
7. 数据寄存器DT
数据寄存器可用来存储数据,例如常数。可通过改变系统寄存器N0.8的设定值而指定保持型数据寄存器的首地址。FP1-C40的N0.8默认值是K0,因此默认值DT0~DT1659均为保持型,若设N0.8=K10,则DT0~DT9为非保持型,DT10~DT1659为保持型。
8. 索引寄存器IX、IY
松下公司的FP-M/FP1系列产品都有两个索引寄存器IX和IY可使用,它有如下几种功能。
1) 可作为操作数(WX、WY、WR、SV、EV、DT、K、H)的修正值。有了这种修正功能,可用一条指令取代多条指令的控制。
2) 可对操作数(WX、WY、WR、SV、EV、DT)的地址进行修正,其用法可通过第8章8.2节基础实验8来深入理解。
3) IX、IY还可以用作数据寄存器使用,作为16位存储器时IX、IY可单独使用,用作32位数据存储时,IX为低位16位区,IY自动确定为高16位区。
IT 功能
Web 服务器;
用标准浏览器可下装和观察HTML页面。
Web 页面
用于监视 S7-200 控制器:
提供了用于系统诊断的标准页面和一个简单变量编辑器。
其它客户化页面可使用任何HTML工具创建。
电子邮件;
可直接从用户程序发送预定义电子邮件
FTP 通讯
CPU 可将数据块作为文件发送到其它 PC,或读取、删除其它 PC(客户机功能)的文件。 对于大多数操作系统平台,都可通过 FTP 进行通讯。
组态
组态 CP 243-1 IT 的完整功能需要 STEP 7-Micro/WIN V3.2 SP3 或更高版本。
CP 243-1 提供有一个*、不能更改的 MAC 地址。
1. S7通信简介
S7通信是S7系列PLC基于MPI、PROFIBUS、ETHERNET网络的一种优化的通信协议,主要用于S7300/400PLC之间的通信。SIMATIC S7- PN CPU包含一个集成的 PROFINET 接口,该接口除了具有 PROFINET I/O功能,还可以进行基于以太网的S7通信。SIMATIC S7- PN CPU支持无确认数据交换、确认数据交换和单边访问功能。功能块的调用如图1、图2所示。
S7-400块
S7-300描述简要描述SFB 8FB 8用于发送无确认的快速数据交换,发送数据后无对方接收确认。SFB 9FB 9用于接收SFB 12FB 12用于发送确认数据交换,发送数据后有对方接收确认。SFB 13FB 13用于接收SFB 14FB 14读数据单边编程读访问。SFB 15FB 15写数据单边编程写访问。
表1
图1
西门子6GK7243-1EX01-0XE0
图2
要通过 S7-PN CPU 的 集成PROFINET 接口实现S7 通信,需要在硬件组态中建立连接。
2. 硬件及网络组态
CPU采用两个315-2PN/DP,使用以太网进行通信。
在STEP7中创建一个新项目,项目名称为PN S7。插入两个S7-300站,在硬件组态中,分别插入CPU 315-2 PN/DP。如图3所示。
图3
新建以太网,打开“NetPro"设置网络参数,选中CPU,在连接列表中建立新的连接。如图4所示。
图4
然后双击该连接,设置连接属性。在“General"属性中块参数ID = 1,这个参数即是下面程序中的参数“ID"。在SIMATIC 315PN-1中激活“Establish an active connection",作为Client端,SIMATIC 315PN-2作为Server 端。
3. 软件编程
3.1. 无确认数据交换
SFB/FB 8 "USEND" 向类型为“URCV"的远程伙伴SFB/FB发送数据。执行发送过程而不需要和SFB/FB伙伴进行协调。也就是说,在进行数据传送时不需要伙伴SFB/FB进行确认。
S7-300:在REQ的上升沿处发送数据。在REQ的每个上升沿处传送参数R_ID、
ID和SD_1。在每个作业结束之后,可以给R_ID、ID和SD_1参数分配新数值。
S7-400:在控制输入REQ的上升沿处发送数据。通过参数SD_1到SD_4来指向要
发送的数据,但并非都需要用到所有四个发送参数。
然而,必须确保参数SD_1到SD_4/SD_1和RD_1到RD_4/RD_1 (在相应通讯伙
伴SFB/FB "URCV" 上)所定义的区域在以下几个方面保持*:
? ?编号
? ?长度
? ?数据类型
参数R_ID必须在两个SFB中*相同。如果传送成功完成,则通过状态参数DONE来表示,此时其逻辑数值为1。
SFB/FB 9 "URCV" 从类型为“USEND"的远程伙伴SFB/FB中异步接收数据,并
把接收到的数据复制到组态的接收区域内。
当程序块准备好接收数据时,EN_R输入处的逻辑值为1。可以通过EN_R=0来取
消一个已激活的作业。
S7-300:在EN_R的每个上升沿处应用参数R_ID、ID和RD_1。在每个作业结束
之后,可以给R_ID、ID和RD_1参数分配新数值。
S7-400:通过参数RD_1到RD_4来指向接收数据区。
必须确保参数RD_i/RD_1和SD_i/SD_1 (在相应通讯伙伴SFB/FB "USEND"
上)所定义的区域在以下几个方面保持*:
?? 编号
? ?长度
? ?数据类型。
通过NDR状态参数逻辑数值为1来指示已经成功完成复制处理过程。参数R_ID必须在两个SFB/FB上*相同。
打开SIMATIC 315PN-1的OB1,在OB1中依次调用FB8,FB9如图5、图6所示:
图5
程序中的参数说明见表2
参数描述数据类型存储区描述REQINPUTBOOL I、Q、M、D、L上升沿触发工作IDINPUTWORDM、D、常数连接IDR_IDINPUT DWORDI、Q、M、D、L、常数连接号,相同连接号的功能块互相对应发送/接收数据DONEOUTPUTBOOL I、Q、M、D、L为1时,发送完成ERROROUTPUTBOOLI、Q、M、D、L为1时,有故障发生STATUSOUTPUTWORDI、Q、M、D、L状态代码S7-300:SD_1
S7-400:
SD_i
(1 ≤ i ≤ 4) IN_OUTANYM、D、T、Z I、Q、M、D、T、C发送数据区
表2 FB8参数说明
西门子6GK7243-1EX01-0XE0
图6
程序中的参数说明见表3
参数参数数据类型存储区描述EN_RINPUTBOOLI、Q、M、D、L、常数为1时,准备接收IDINPUTWORDM、D、常数连接IDR_IDINPUTDWORD I、Q、M、D、L、常数连接号,相同连接号的功能块互相对应发送/接收数据NDROUTPUTBOOL I、Q、M、D、L为1时,接收完成ERROROUTPUTBOOLI、Q、M、D、L为1时,有故障发生STATUSOUTPUTWORDI、Q、M、D、L状态代码S7-300:RD_1
S7-400:
RD_i
(1 ≤ i ≤ 4)IN_OUTANYM、D、T、Z I、Q、M、D、T、Z接收数据区
表3 FB9参数说明
同样,在SIMATIC 315PN-2的OB1中,调用FB8/FB9。通信双方的“R_ID"均设为0。将SIMATIC 315PN-1的MB100-MB109赋值B#16#02,在SIMATIC 315PN-2中,将FB9的“EN_R"置1,然后在SIMATIC 315PN-1中,将FB8中“REQ"设置上升沿信号,此时SIMATIC 315PN-2的MB110-MB119接收到B#16#02。如图7所示。
图7
同理,将SIMATIC 315PN-2 的MB100-MB109赋值为B#16#03,SIMATIC 315PN-1的MB110-MB119接收到B#16#03。如图8所示。
图8
3.2. 确认数据交换
SFB/FB 12 "BSEND" 向类型为“BRCV"的远程伙伴SFB/FB发送数据。通过这种
类型的数据传送,更多的数据可以在通讯伙伴之间传输,*其它用于组态的
S7连接的通讯SFB/FB所能传输的数据量,通过集成PN口的S7-400和S7-300是65534字节。
要发送的数据区是分段的。各个分段单独发送给通讯伙伴。通讯伙伴在接收到后
一个分段时对此分段进行确认,该过程与相应SFB/FB "BRCV" 的调用无关。在调用块之后,当在控制输入REQ上有上升沿时,发送作业被激活。发送用户存储区中的数据与处理用户程序是异步执行的。
由SD_1起始地址和要发送数据的大长度。可以通过LEN来确定数据域的作业长度。在这种情况下,LEN替换SD_1的长度区域。参数R_ID必须在相应的两个SFB/FB上*相同。如果在控制输入R处有上升沿,则当前数据传送将被取消。如果传送成功完成,则通过将状态参数DONE的数值设置为1来进行指示。如果状态参数DONE或ERROR的数值为1,则在前一个发送处理结束之前,不能处理新的发送作业。
SFB/FB 13 "BRCV" 接收来自类型为“BSEND"的远程伙伴SFB/FB的数据。在收
到每个数据段后,向伙伴SFB/FB发送一个确认帧,同时更新LEN参数。在块调用完毕,并且在控制输入EN_R数值为1之后,块准备接收数据。可以通过EN_R=0来取消一个已激活的作业。
由RD_1起始地址和接收区的大长度。由LEN指示已接收数据域的长度。
从用户存储区中接收数据与处理用户程序是异步执行的。参数R_ID必须在相应的两个SFB/FB上*相同。通过状态参数NDR的数值为1来指示所有数据段的无错接收。接收到的数据保持不变,直到通过EN_R=1来重新调用SFB/FB 13为止。如果在数据的异步接收期间调用块,则将引发一个警告,该警告通过STATUS参数输出;如果当控制输入EN_R数值为0时进行调用,则接收将被终止,并且SFB/FB将返回到它的初始状态。
打开SIMATIC 315PN-1的OB1,在OB1中依次调用FB12,FB13如图9、图10所示:
1.概述
1.1 S7-1200 的PROFINET 通信口
S7-1200 CPU 本体上集成了一个 PROFINET 通信口,支持以太网和基于 TCP/IP 的通信标准。使用这个通信口可以实现 S7-1200 CPU 与编程设备的通信,与HMI触摸屏的通信,以及与其它 CPU 之间的通信。这个PROFINET 物理接口是支持10/100Mb/s的 RJ45口,支持电缆交叉自适应,因此一个标准的或是交叉的以太网线都可以用于这个接口。
1.2 S7-1200支持的协议和大的连接资源
S7-1200 CPU 的PROFINET 通信口支持以下通信协议及服务
? TCP
? ISO on TCP ( RCF 1006 )
? S7 通信 (服务器端)
通信口所支持的大通信连接数
S7-1200 CPU PROFINET 通信口所支持的大通信连接数如下:
? 3个连接用于HMI (触摸屏) 与 CPU 的通信
? 1个连接用于编程设备(PG)与 CPU 的通信
? 8个连接用于Open IE ( TCP, ISO on TCP) 的编程通信,使用T-block 指令来实现
? 3个连接用于S7 通信的服务器端连接,可以实现与S7-200,S7-300以及 S7-400 的以太网S7 通信
S7-1200 CPU可以同时支持以上15个通信连接,这些连接数是固定不变的,不能自定义。
TCP(Transport Connection Protocol)
TCP是由 RFC 793描述的标准协议,可以在通信对象间建立稳定、安全的服务连接。如果数据用TCP协议来传输,传输的形式是数据流,没有传输长度及信息帧的起始、结束信息。在以数据流的方式传输时接收方不知道一 条信息的结束和下一条信息的开始。因此,发送方必须确定信息的结构让接收方能够识别 。在多数情况下TCP应用了IP (Internet protocol) ,也就是“TCP/IP 协议", 它位于 ISO-OSI 参考模型的第四层。
协议的特点:
? 与硬件绑定的高效通信协议
? 适合传输中等到大量的数据 (<=8192 bytes)
? 为大多数设备应用提供
– 错误恢复
– 流控制
– 可靠性
? 一个基于连接的协议
? 可以灵活的与支持TCP协议的第三方设备通信
? 具有路由兼容性
? 只可使用静态数据长度
? 有确认机制
? 使用端口号进行应用寻址
? 大多数应用协议,如TELNET、FTP都使用TCP
? 使用 SEND/RECEIVE 编程接口进行数据管理需要编程来实现
1.3 硬件需求和软件需求
硬件:
① S7-1200 CPU
② S7-300 CPU + CP343-1(支持S7 Client)
③ PC(带以太网卡)
④ TP以太网电缆
软件:
① STEP 7 Basic V10.5
② STEP 7 V5.4
2. ISO on TCP 通信
S7-1200 CPU 与S7-300/400 之间通过ISO on TCP 通信,需要在双方都建立连接,连接对象选择“Unspecified"。
所完成的通信任务为:
① S7-1200将DB3里的100个字节发送到S7-300的DB2中
② S7-300将输入数据IB0发送给S7-1200的输出数据区QB0。
2.1 S7-1200 CPU 的组态编程
组态编程过程与 S7-1200 CPU 之间的通信基本相似 (见 6.3 ),这里简单描述一下步骤:
① 使用STEP 7 Basic V10.5 软件新建一个项目
在STEP 7 Basic 的“Portal View"中选择 “Create new project"创建一个新项目
② 添加新设备
然后进入“Project view",在“Project tree"下双击“Add new device",在对话框中选择所使用的S7-1200 CPU添加到机架上,命名为 PLC_1。
③ 为 PROFINET 通信口分配以太网地址
在“Device View"中点击 CPU 上代表PROFINET 通信口的绿色小方块,在下方会出现PROFINET 接口的属性,在 “Ethernet addresses"下分配IP 地址为 192.168.0.1 ,子网掩码为255.255.255.0。
④ 在 S7-1200 CPU 中调用“TSEND_C"通信指令并配置连接参数和块参数
在主程序中调用发送通信指令,进入“Project tree" > “ PLC_1">“Program blocks">“Main"主程序中,从右侧窗口“Instructions"> “Extended Instructions">“Communications"下调用“TSEND_C"指令,并选择“Single Instance"生成背景 DB块。然后单击指令块下方的“下箭头",使指令展开显示所有接口参数。
然后,创建并定义发送数据区 DB 块。通过“Project tree">“ PLC_1"> “Program blocks" >“Add new block" ,选择 “Data block"创建 DB 块,选择寻址,点击“OK"键,定义发送数据区为 100个字节的数组