热门搜索:
西门子电缆
信誉**,客户至上是公司成立之初所确立的宗旨,在公司**的严格要求和员工们不折不扣地贯彻执行下发展延续至今。“假一罚十”一直是我公司的主动承诺。
承诺一:1、保证全新原装进口 承诺二:2、保证安全准时发货
承诺三:3、保证售后服务质量
流程一:1、客户确认所需采购产品型号
流程二:2、我方会根据询价单型号查询价格以及交货期,拟一份详细正规报价单
流程三:3,客户收到报价单并确认型号无误后订购产品
流程四:4、报价单负责人根据客户提供型号以及数量拟份销售合同
流程五:5、客户收到合同查阅同意后盖章回传并按照合同销售额汇款到公司开户行
流程六:6、我公司财务查到款后,业务员安排发货并通知客户跟踪运单
1.西门子SENTRON PAC3200 仪表介绍
西门子的SENTRON PAC3200多功能电力仪表是一种用于面板安装的仪表,可用来计量、显示配电系统多达50个测量变量,例如电压、电流、功率、有功功率、频率以及较大值、较小值和平均值。中文大屏幕图形液晶显示使用户可远距离读表。PAC3200仪表如下图所示。
1.1 SENTRON PAC3200 MODBUS RTU通信扩展模块介绍
PAC3200多功能仪表的本体没有MODBUS RTU通信的功能,如果希望将PAC3200作为从站连接到MODBUS RTU网络与主站进行数据交换必须选用外部扩展通信模块――SENTRON PAC RS485模块。(注意: PAC RS485 扩展模块使用错误的固件版本时将不能工作
PAC3200 MODBUS RTU通信扩展模块如下图所示。
(1) 通信接线端子
(2) 安装螺钉
(3) 通风口
(4) LED
1.2 SENTRON PAC3200 MODBUS RTU通信扩展模块的接线
SENTRON PAC3200 MODBUS RTU通信扩展模块的接线如下图所示
1. 将电缆连接到端子排上相应的螺栓端子。
1.3 SENTRON PAC3200 MODBUS RTU通信的方式
1.SENTRON PAC3200设备支持的功能码如下:
表1: SENTRON PAC3200设备支持的功能码
R—可读
2.SENTRON PAC3200 MODBUS RTU 与S7-1200进行通信
下图是SENTRON PAC3200仪表与S7-1200进行MODBUS RTU 通信的接线图。
本例中使用的PLC硬件为:
本例中使用的PAC3200仪表硬件为:
3.软件需求
1) 编程软件 Step7 Basic V10.5 ( 6ES7 822-0AA0-0YA0)
下表列出了 MB_MASTER 参数 MODE、Modbus 功能代码和 Modbus 地址范围之间的对应关系。
5.S7-1200 与PAC3200 进行MODBUS RTU的通信组态
我们通过一个实例来介绍如何在Step7 Basic V10.5 中组态S7-1214C 和PAC3200的MODBUS RTU通信。
5. 1 PLC 硬件组态
首先在Step7 Basic V10.5中建立一个项目,如图1所示。
在硬件配置中,添加CPU1214C和通信模块CM1241 RS485模块,如图2所示。
在CPU的属性中,设置以太网的IP地址,建立PG与PLC的连接,如下图所示。
5. 2 PAC3200参数设置
1. 地址的设置范围:1-247。本例中设为8。
6.S71200 与PAC3200的MODBUS RTU通信原理与编程的实现
6. 1 S7 1200 PLC与PAC3200 通过MODBUS RTU 通信的基本原理
S7 1200提供了**的MODBUS库进行MODBUS通信,如下图所示:
西门子PLC S7-1200的模块CM1241 RS232和CM1241 RS485都可以实现MODBUS RTU的通信,本例中采用CM1241 RS485模块来实现与仪表PAC3200的MODBUS RTU 的通信。
1.1 S7-1200 的PROFINET 通信口
1.2 S7-1200支持的协议和较大的连接资源
S7-1200 CPU 的PROFINET 通信口支持以下通信协议及服务
通信口所支持的较大通信连接数
TCP(Transport Connection Protocol)
1.3 硬件需求和软件需求
2. ISO on TCP 通信
2.1 S7-1200 CPU 的组态编程
⑤ 调用“TRCV”通信指令并配置块参数如图6 47所示。
2.2 S7-300 CPU 的ISO on TCP通信的组态编程
每一个时钟位都按照不同的周期/频率在0和1之间切换变化,见表1。
② 配置以太网模块
③ 网络组态
这时会跳出通用信息,如图8所示。
然后,进入“Addresses”配置通信双方的IP 地址及TSAP 地址,如图9所示。
配置完连接并编译存盘后,将网络组态下载到CPU300中。
④ 软件编程
CALL “AG_SEND” //调用FC5
图1:仪表PAC3200
SENTRON PAC3200 电力监测设备的固件版本较低应为FWV2.0X。 较早的版本不支持
PAC RS485 扩展模块。)该扩展模块具有下列性能特点:
? 可通过设备正面设置参数
? 即插即用
? 支持 4.8/9.6/19.2 以及 38.4 KBd 通信传输速率
? 通过6针螺钉端子接线
? 不需要外接辅助电源
? 通过模块上的 LED 显示状态
图2:PAC3200 MODBUS RTU 通信模块
图3:PAC3200 MODBUS RTU 通信模块的接线图
2. 将电缆屏蔽层的一端连接到保护性接地PE。
3. 将信号公共端连接到保护性接地。 这样也使得扩展模块接地。
4. 在**个和较后一个通信节点上,在正信号和负信号之间接入总线端接电阻器。 为
此,PAC RS485 扩展模块中集成了一个120 Ohm 的总线端接电阻器。 如果需要其它
电阻值,请使用外部总线端接电阻器。 将它连接到**个和较后一个通信节点。
FC
功能码
数据类型
访问权限
02
输入的状态
位
输入
R
03
输出寄存器
寄存器
输出
R
04
输入寄存器
寄存器
输入
R
06
单一输出寄存器
寄存器
输出
RW
10
多个输出寄存器
寄存器
-
RW
2B
设备识别
-
-
R
RW—可读写
S7-1200 PLC可以通过功能代码0x03 和0x04 访问仪表PAC3200的被测量数据。
下表是一些PAC3200 被测量的数据。
表2: SENTRON PAC3200设备的一些被测量数据
2.西门子SENTRON PAC3200 仪表与S7-1200进行通信的接线图
图4:S7-1200与PAC3200进行MODBUS RTU 进行通信的接线图
3.硬件需求
S7-1200 PLC目前有3种类型的CPU:
1)S7-1211C CPU。
2)S7-1212C CPU。
3)S7-1214C CPU。
这三种类型的CPU都可以使用MODBUS通信协议通过通信模块CM1241 RS485来实现S7-1200与PAC3200仪表的通信。
1)PM1207电源 ( 6EP1 332-1SH71 )
2) S7-1214C ( 6ES7 214 -1BE30 -0XB0 )
3) CM1241 RS485 ( 6ES7 241 -1CH30 -0XB0 )
4) 模拟器 ( 6ES7 274 -1XH30 -0XA0 )
1) PAC3200 (7KM2112-0BA00-3AA0)
2) MODBUS RTU 模块 (7KM9300-0AB00-0AA0)
3) MODBUS 通信电缆 ( 6XV1830-0EH10)
4.S7-1200 MODBUS RTU的通信方式
S7-1200作为MODBUS RTU主站的通信方式是由DATA_ADDR 和 MODE 参数来选择 Modbus 功能类型的。
DATA_ADDR(从站中的起始 Modbus 地址): *要在 Modbus 从站中访问的数据的起始地址。MB_MASTER 使用 MODE 输入而非功能代码输入。 MODE 和 Modbus 地址范围一起确定实际 Modbus 消息中使用的功能代码。
西门子电缆
表3: MB_MASTER的MODBUS 功能
图5: 新建S7 1200项目
图6: S7 1200硬件配置
图7: S7 1200 IP地址的设置
在SENTRON PAC 电力监测设备的主菜单中,调用“设置”>“RS485 模块”,出现下面的设置画面:
图8: PAC3200 MODBUS RTU 通信参数的设置
2. 波特率的设置范围:4800,9600,19200,38400。本例中设为38400。
3. 设置外部通信的数据位、奇偶校验位及停止位:
? 8E1=8 个数据位,奇偶校验位为even, 1 个停止位
? 8O1=8 个数据位,奇偶校验位为odd, 1 个停止位
? 8N2=8 个数据位,无奇偶校验位, 2 个停止位
? 8N1=8 个数据位,无奇偶校验位, 1 个停止位
本例中根据S7-1200 MODBUS MASTER 的参数设置为 8N1。
4. 协议的设置:可选项为:SEABUS,MODBUS RTU。
本例中设为MODBUS RTU。
5.响应时间的设置:注意与波特率的设置相匹配,本例中设为10mS。
图9: S7 1200提供的**MODBUS库
S7-1200的MODBUS RTU通信的基本原理是:
首先S7-1200 PLC的程序调用一次MODBUS 库中的功能块MB_COMM_LOAD来组态CM1241 RS232和CM1241 RS485模块上的端口,对端口的参数进行配置。
其次调用MODBUS 库中的功能块MB_MASTER或者MB_SLAVE作为MODBUS 主站或者从站与支持MODBUS协议的设备进行通信。
S7-1200 CPU 本体上集成了一个 PROFINET 通信口,支持以太网和基于 TCP/IP 的通信标准。使用这个通信口可以实现 S7-1200 CPU 与编程设备的通信,与HMI触摸屏的通信,以及与其它 CPU 之间的通信。这个PROFINET 物理接口是支持10/100Mb/s的 RJ45口,支持电缆交叉自适应,因此一个标准的或是交叉的以太网线都可以用于这个接口。
? 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是由 RFC 793描述的标准协议,可以在通信对象间建立稳定、安全的服务连接。如果数据用TCP协议来传输,传输的形式是数据流,没有传输长度及信息帧的起始、结束信息。在以数据流的方式传输时接收方不知道一 条信息的结束和下一条信息的开始。因此,发送方必须确定信息的结构让接收方能够识别 。在多数情况下TCP应用了IP (Internet protocol) ,也就是“TCP/IP 协议”, 它位于 ISO-OSI 参考模型的*四层。
协议的特点:
? 与硬件绑定的高效通信协议
? 适合传输中等到大量的数据 (<=8192 bytes)
? 为大多数设备应用提供
– 错误恢复
– 流控制
– 可靠性
? 一个基于连接的协议
? 可以灵活的与支持TCP协议的第三方设备通信
? 具有路由兼容性
? 只可使用静态数据长度
? 有确认机制
? 使用端口号进行应用寻址
? 大多数应用协议,如TELNET、FTP都使用TCP
? 使用 SEND/RECEIVE 编程接口进行数据管理需要编程来实现
硬件:
① S7-1200 CPU
② S7-300 CPU + CP343-1(支持S7 Client)
③ PC(带以太网卡)
④ TP以太网电缆
软件:
① STEP 7 Basic V10.5
② STEP 7 V5.4
S7-1200 CPU 与S7-300/400 之间通过ISO on TCP 通信,需要在双方都建立连接,连接对象选择“Unspecified”。
所完成的通信任务为:
① S7-1200将DB3里的100个字节发送到S7-300的DB2中
② S7-300将输入数据IB0发送给S7-1200的输出数据区QB0。
组态编程过程与 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个字节的数组。
根据所使用的参数创建符号表,如图1所示。
配置连接参数,如图2所示。
配置块接口参数,如图3所示。
图1 创建所使用参数的符号表图PLC tag
图2 配置连接参数
图3 配置 TSEND_C 块参数
因为与发送使用的是同一连接,所以使用的是不带连接的发送指令“TRCV”,连接“ID”使用的也是“TSEND_C”中的“Connection ID”号,如图4所示。
图4 配置 T_RCV 块参数
① 使用STEP 7 软件新建一个项目并进行硬件组态
创建完新项目,在项目的窗口下,右键菜单里,选择“Insert New Object”>“SIMATIC 300 Station” ,插入一个S7-300 站。
为了编程方便,我们使用时钟脉冲激活通信任务,在CPU的“Properties”>“Cycle/Clock Memory”中设置,如图5所示。
图5 设置时钟脉冲
表1:时钟位频率
位
7
6
5
4
3
2
1
0
周期(S)
2
01. Jun
1
0.8
0.5
0.4
0.2
0.1
频率(Hz)
0.5
0.625
1
Jan 25
2
02. Mai
5
10
进入“HW Config”中,组态所使用的 CPU 及“CP343-1”模板。并新建以态网 Ethernet (1) ,配置“CP343-1”模板IP 地址为:192.168.0.2,子网掩码为: 255.255.255.0 。如图6所示。配置完硬件组态及属性,编译存盘并下载所有硬件组态。
图6 S7-300 硬件配置
打开 “NetPro” 配置网络,选中 CPU,在连接列表里建立新的连接并选择连接对象和通信协议,如图7所示。
图7 创建新的连接并选择 ISO-on-TCP 协议
图8 通用信息
图9 配置通信的IP 地址及TSAP 地址
在OB1中,从“Libraries”>“SIMATIC_NET_CP”>“CP300”下,调用FC5(AG_SEND)、FC6(AG_RECV)通信指令。创建接收数据区为 DB2,定义成100个字节的数组。
CALL “ AG_RECV” //调用FC6
ID :=1 // 连接号,要与连接配置列表中一致,见图8
LADDR :=W#16#100 //CP的地址,要与配置中一致,见图8
RECV :=P#DB2.DBX 0.0 BYTE 100 //接收数据区
NDR :=M10.0 //为1时,接收到新数据
ERROR :=M10.1 //为1时,有故障发生
STATUS :=MW12 //状态代码
LEN :=MW14 //接收到的实际数据长度
ACT :=M0.2 //为1时,激活发送任务
ID :=1 // 连接号,要与连接配置中一致
LADDR :=W#16#100 //CP的地址,要与配置中一致
SEND :=IB0 //发送数据区
LEN :=1 //发送数据的长度
DONE :=M10.2 //为1时,发送完成
ERROR :=M10.3 //为1时,有故障发生
STATUS :=MW16 //状态代码