欢迎添加工控笔记微信公众号和站长微信,交流讨论,共同进步!
正文
概述
1、定义组态王设备
组态王定义设备时请选择:PLC\西门子\S7-200系列\PPI
设备向导页选项的特殊说明:
是否选串口 | 是 |
是否有地址选择页 | 是 |
通讯方式 | RS232 |
描述 | PPI |
通讯卡名 |
说明:建议使用西门子串口PPI电缆
2、设备地址及通讯参数定义
设备地址格式为:由于S7-200系列PLC 的型号不同,设备地址的范围不同,所以对于某一型号设备的地址范围, 请见相关硬件手册。组态王的设备地址要与PLC的PORT口设置一致.PLC默认地址为2。
建议的通讯参数:
设定值 | 推荐值 |
波特率 | 9600 |
数据位 | 8 |
停止位 | 1 |
校验位 | 偶校验 |
3、组态王数据词典-IO变量定义
1)、组态王中寄存器列表
寄存器格式 | 寄存器范围 | 数据类型 | 变量类型 | 读写属性 | 寄存器含义 |
Vdd | 0~65535 | BYTE,SHORT,USHORT,
LONG,FLOAT |
I/O整型、I/O实型 | 读写 | V数据区 |
Idd | 0.0~9999.7 | BIT | I/O离散 | 只读 | 数字量输入区,按位读取 |
0~9999 | BYTE | I/O整型 | 数字量输入区,按字节(8位)读取 | ||
Qdd | 0.0~9999.7 | BIT | I/O离散 | 读写 | 数字量输出区,按位操作 |
0~9999 | BYTE | I/O整型 | 数字量输出区,按字节(8位)操作 | ||
Mdd | 0.0~9999.7 | BIT | I/O离散 | 读写 | 中间寄存器区,按位操作 |
0~9999 | BYTE | I/O整型 | 中间寄存器区,按字节(8位)操作 |
Vx.y | 0.0-65535.7 | BIT | I/O离散 | 读写 | 按位读写V区数据
二级通道范围0-7 |
Vx.y | x:0-65534 Y:1-127并且 X+Y<=65535 |
USHORT | I/O整型 | 读写 | X为字符串的起始地址
Y为字符串的长度 |
DELAY | 0~1 | USHORT | I/O整型 | 读写 | DELAY0为PC向PLC发送数据帧的准备期 DELAY1为PC接收PLC返回数据帧的准备期 |
2)特殊寄存器说明:
1.对于只写寄存器,请将采集频率设置为0.
2.关于字符串数据类型:
二级通道表示 x.y
X 表示读/写字符串的起始地址; y表示字符串的长度。
Y=1时:
读取的字符串为地址X的当前ASCII 字符。
Y=N(N>1)时:
读取长度为 N 的字符串,从地址 X 开始。
3.组态王支持可输入的 ASCII 码。
4.组态王支持简体和繁体汉字输入并画面显示, STEP7 无法监测汉字。
5.通用版下单个# 字符不能读写,嵌入版下可正常读写。
6.长度问题:字符串长度为 N ,但在内存中还有一位结束符,实际共占 N+1 位。
即若写入 N 长度的字符串,实际在内存中写入 N+1 位。
若用户设定长度的字符串所在内存中有结束符‘ \0 ‘,则字符串的读取以 ‘\ 0’ 的出现为准 , 而不是用户设定的字符串的长度。字符串显示截取到内存中的字符串结束符 ‘\ 0’
7. 若要读取字符串的第一位内存中即为字符串结束符,则组态王显示为之前的所存的值,不作改变。若此时关掉组态王重新启动。则组态王画面显示 0 。
具体情况:
原始值:
内存:地址 0 1 2 3 4 5
实际的字符 a a a a a a
此时组态王读出:
V0.2 : aa
V0.5 : aaaaa
V2.2 : aa
给 V0.2 写入 bb 此时内存中:
内存:地址 0 1 2 3 4 5
实际的字符 b b \ 0 a a a
此时组态王读出
V0.2 : bb
V0.5 : bb
V2.2 : aa
注意: 此时内存中地址 2 就是 ‘\ 0’ ,但组态王的值并没有变化。实际驱动中赋给组态王的字符串为“ \ 0 a ”,但组态王没有接受这个值变动。这时关掉 组态王重新启动,则显示为:
V0.2 : bb
V0.5 : bb
V2.2 : 0
8.为达到最高效的使用内存,定义字符串时不要重复使用同一内存。如第一个字符串定义为 V3.3 ,下一个应定义为 V7.2
即下一个字符串的起始地址=前一个字符串的x+y+1(7=3+3+1)。
2)、寄存器使用举例:
寄存器名称 | 读写属性 | 数据类型 | 变量类型 | 寄存器说明 |
V400 | 读写 | BYTE | IO整数 | V区地址为400的寄存器(一个字节) |
V416 | 读写 | LONG | IO整数 | V区地址为416的寄存器(四个字节416、417、418和419) |
Q0 | 读写 | BYTE | IO整数 | 对应Q区的Q0.0-Q0.7,一个字节(八位) |
I0.0 | 只读 | BIT | I/O离散< | 对应I区的I0.0位 |
操作
1.组态王设置PPI协议,工程界面下,COM1—新建—PLC—西门子—S7-200系列—PPI
2.自定义通信协议的名称
3.设置串口号,先在设备管理器中查看电脑的串口号,与电脑的一致
4.设置PLC的PPI地址,需要与PLC系统块中设置的一致
5..组态王PPI协议设置完成,双击上一步编辑完成的串口,设置波特率,奇偶校验,停止位,数据位等
6.编辑PLC程序如下图:将VW0的数据写入VW2中
7.在系统块中设置要连接的端口PLC地址与波特率
8.创建变量,详情如下图
9.在界面中关联变量
测试