西门子6ES7214-1HG40-0XB0型号介绍
Profibus-DP是用于分布式的I/O设备高速通信的一种协议,该协议定义了主站和从站,支持单主或多主系统,各主站间为令牌传递,主站与从站间为主/从传送,主站周期地读取从站的输入信息并周期地向从站发送输出信息。
S7-200可通过增加EM277Profibus-DP扩展模块的方法支持Profibus-DP网络协议,作为DP从站。使用Profibus-DP协议方式S7-200和组态王通讯时,需要通过OPC方式来实现,组态王不再提供直接的DP驱动,其中西门子提供OPCServer,组态王作为OPC Client进行数据通讯。具体配置过程为:
(1)将CP5611通讯卡安装在PC机中,并根据硬件安装向导安装卡的驱动程序,用Profibus-DP通讯电缆将CP5611卡与EM277通讯口相连,CP5611作为DP主站。
(2)在PC机上安装Simatic net6.0软件,它用于组态整个Profibus-DP网络。软件安装后,选择SIMATICNET→Settings→Configuration Console,在PC Station中添加OPCServer程序及CP5611通讯卡;使用SIMATIC NET→Settings→Commissioning Wizard→PCStation Wizard创建项目和虚拟PC Station;更改硬件组态时,在弹出PC Station的配置图中添加EM277的GSD文件后,设置CP5611卡的地址和通讯波特率及协议模式,此处我们将CP5611卡的地址设为1,通讯波特率设为1.5M,协议选择DP,并将CP5611卡操作模式选择设为DPMaster;在HW Config窗口的DP Master总线上添加EM277模块作为DP从站,双击总线上的EM277模块设置其地址(要求与实际模块的拨码设置一致),此处我们设为2,并为EM277建立数据交换区,可根据实际需要选择交换区大小;在SET PG/PCInterface设置为S7ONLINE(STEP 7)→PC internal(local),CP_L2_1:→CP5611(PROFIBUS);将以上配置信息下载到虚拟PC站中,如图1所示:
图1 Profibus-DP硬件组网界面
(3)通过西门子提供的OPC Server程序读写PLC中的的数据。用鼠标点击SIMATICNET→Profibus→Softnet Profibus→OPC Scout,进入OPC Server的项目配置环境;在OPCServer中用鼠标双击“OPC.SimaticNet”,新建一个组名,双击创建的组则可打开“OPC-Navigator”,此时可看到在配置网络过程中选择的协议;双击“DP”项,在OPC中作相应的定义。定义完毕后,运行OPCServer程序,则可通过Profibus-DP总线协议和PLC建立连接。
(4)用组态王读取OPCServer中的数据。在组态王中选择OPC.SimaticNET建立OPC服务器,在“数据字典”中定义变量,变量为I/O型,连接设备为OPC服务器,即OPC.SimaticNET,寄存器中可直接引用OPC中所定义的所有变量元素;在制作好的画面上建立变量的动画连接并运行组态王,则组态王可通过OPC与S7-200通信。
***概述***
---- 本例描述了S7-212CPU和外部设备例如打印机的连接方法,该例中SIMATIC PLC自由通信口模式(FreeportMode)向打印机发送信息。程序包含以下功能:
输入I0.0为1时,打印文字"SIMATIC S7-200":
输入I0.1到I0.7为1时,打印句子"bbbbb O.x ISSET!"(其中x分别为1,2,....,7)。
假定打印机用并行接口连接,并假定发送波特率为9600波特。
***硬件要求***
---- 为了能正确地应用此例,你需要
1台SIMATIC S7-212或S7-214
1条PC/PPI 电缆
1只9孔阴性插座到25针阳性插座的转换器
1台串行到并行的转换器。
1台线2和线3互换的空调制解调式的适配器(如果需要)
1台并行打印机
---- 可能会出现一个问题:
---- 因为SIMATICS7-200和打印机都作为数据通信设备(DCE),两台设备的数据传输方向有可能会相同,也就是说,两者的数据接收线连在了一起,或发送线也连接在一起(线2和线3),这个问题可以通过转换器的正确设置或使用合适的线路适配器(空调置解调式的适配器)来解决。
下面的例程说明了在S7-200CPU之间设置一个简单的Modbus通讯。
这个例子是关于Modbus功能码6的(写从站保持寄存器), 也可以作为其他所支持的功能码:1, 2, 3, 4, 5, 15 和16的基本参数设置步骤 。
要求:
要使用Modbus协议必须先在STEP 7Micro/Win上安装指令库
Modbus主站协议只支持STEP 7 Micro/Win V4.0 SP5及其以上版本.。
1. 硬件设置
2. 参数匹配
3. 指令库的存储地址
4. 保持寄存器值得传输
1.硬件设置
例程中的Modbus通讯是在两个S7-200CPU的0号通讯口间进行的(好每个CPU都有两个通讯口)。在主站侧也可以选择相应库文件 "MBUS_CTRL_P1" 和"MBUS_MSG_P1"通过1号通讯口通信。通讯口1与Micro/WIN建立PG或PC连接,两个CPU的通讯口0通过PPI电缆进行连接(电缆的针脚连接为2,3,7,8)。
( 26 KB )
图. 01
2.参数匹配
对于MODBUS通讯, 主站侧需要程序库 "MBUS_CTRL" 和 "MBUS_MSG",从站侧需要程序库 "MBUS_INIT" and "MBUS_SLAVE"。
在 Micro/WIN 中您需要为主站和从站新建一个项目,程序与参数设置见图.02。
必须要保证主站与从站的“Baud”和"Parity"的参数设置要一致,并且程序块"MBUS_MSG"中的"Slave"地址要与程序块"MBUS_INIT"中的"Addr"所设置的一致(见图. 02)。
Micro/WIN“系统块”中设置的0通讯口的波特率与MODBUS协议无关("Mode" = "1")。
( 40 KB )
图. 02
下面的表格列出了程序块各个参数选项及其意义
主站
MBUS_CTRL
参数 | 意义 | 选项 |
EN | 使能 | |
Mode | 协议选择 | 0=PPI, 1=MODBUS |
Baud | 传输速率 kbps | 1200, 2400, 4800, 9600, 19200, 38400, 57600, 115200 |
Parity | 校验选择 | 0=无校验, 1=奇校验, 2=偶校验 |
Timeout | 从站的长响应时间 ms | |
Done | “完成”标志位 | |
Error | 错误代码 | 1) |
表 01
1) 参看STEP 7Micro/WIN 帮助: "MODBUS主站执行MBUS_MSG时的错误代码MBUS_MSG" 。
MBUS_MSG
参数 | 意义 | 选项 |
EN | 使能 | |
First | 读写请求位 | |
Slave | 从站地址 | |
RW | "读" 或 "写" | 0=读, 1=写 |
Addr | 读写从站的数据地址 | 0 .. 128 = 数字量输出 Q0.0 .. Q15.7 1001 .. 10128 = 数字量输入 I0.0 .. Q15.7 30001 .. 30092 = 模拟量输入 AIW0 .. AIW62 40001 .. 49999 = 保持寄存器 2 |
Count | 位或字的个数 (0xxxx, 1xxxx) / words (3xxxx, 4xxxx) | |
DataPtr | V存储区起始地址指针 | |
Done | '完成' 标志位 | |
Error | 错误代码 | 1) |
表 02
1)参看STEP 7 Micro/WIN帮助: "MODBUS主站执行MBUS_MSG时的错误代码MBUS_MSG" 。
从站
MBUS_INIT
参数 | 意义 | 选项 |
EN | 使能 | |
Mode | 协议选择 | 0=PPI, 1=MODBUS |
Addr | 从站地址 | |
Baud | 传输速率 kbps | 1200, 2400, 4800, 9600, 19200, 38400, 57600, 115200 |
Parity | 校验 | 0=无校验, 1=奇校验, 2=偶校验 |
Delay | 超时时间 ms | |
MaxIQ | 可使用的数字输入输出点数 | 2) |
MaxAI | 可使用的模拟量输入点数 | 2) |
MaxHold | 保持寄存器字的大数量 | 2) |
HoldStart | 保持寄存器的起始地址(40001) | |
Done | 完成标志位 | |
Error | 错误代码 | 3) |
表 03
2) 大的地址取决于所用CPU的类型及其大值。
3)参看STEP 7 Micro/WIN帮助: “MODBUS从站协议的错误代码”。
MBUS_SLAVE
参数 | 意义 | 选项 |
EN | 使能 | |
Done | 完成标志位 | |
Error | 错误代码 | 3) |
表 04
3)参看STEP 7 Micro/WIN帮助: “MODBUS从站协议的错误代码” 。
3. 库的存储地址
项目完成后必须要在Micro/WIN中定义库的存储地址,当定义完存储区后, 要保证在任何情况下不能再被其它程序所使用 (主站侧:"DataPtr" + "Count" 从站侧: "HoldStart" + "MaxHold")。
( 137 KB )
图. 03
4.保持寄存器值的传输
将程序下载到相应的CPU后,可以在状态表中给主站侧的V存储区赋值,监视从站的变化。
当主站的I0.0使能后,VW2中的内容就被发送到从站并写入从站的VW2 。
保持寄存器值的传输见图. 04。
指针"DataPtr" 代表了V区被读的起始地址。
参数 "Count" 表明了地址"Addr" = "4xxxx" (保持寄存器)以字为单位被读的个数。
主站中被读取的V存储区被写入地址为"Addr" = "40002" ("RW" = "1")的保持寄存器中。
保持寄存器是以字为单位工作的,它与从站的V区地址对应。
指针 "HoldStart" 明确了与保持寄存器起始地址40001相对应的V存储区的初始地址。
可以这样计算从站的V区目标指针:
2 * (Addr - 40001) + HoldStart = 2 * (40002 - 40001) + &VB0 =&VB2
要保证"MaxHold" 定义的数据区能够包含主站侧所要写入的数据区 :
MaxHold >= Addr - 40001 + Count = 40002 - 40001 + 1 = 2
( 38 KB )