1200如何与200smart进行S7以太网通信
S7 协议是 SIEMENS S7 系列产品之间通讯使用的标准协议,1200/1500/300/400等系列之间可以使用该协议进行通信,200SMART作为西门子旗下的小型系列产品,是否也支持S7协议呢?答案是肯定的。本文以1200和200smart通信为例学习一下S7协议以太网通信。
案例一:1200作为本地CPU,200SMART作为远程CPU。
要实现下表中数据交换
本地CPU1215C |
操作 |
远程CPU ST30 |
DB2.DBD0(REAL) |
读取 |
VD0(REAL) |
DB2.DBD4 |
读取 |
VD4 |
DB2.DBD8 |
读取 |
VD8 |
DB2.DBD12(REAL) |
写入 |
VD12(REAL) |
DB2.DBD16 |
写入 |
VD16 |
DB2.DBD20 |
写入 |
VD20 |
S7-200 SMART中存储区与1200表示形式有所不同,V区相当于1200的DB1,即VD0相当于DB1.DBD0,以此类推。
一、在博图中创建一个新项目,添加设备CPU 1215C ,从右侧指令列表中找到通信>S7通信>GET(从远程CPU读取数据)和PUT(从远程CPU写入数据)。
REQ:上升沿激活读取。
ID: 用于指定与伙伴 CPU 连接的寻址参数。
ADDR_1: 指向伙伴 CPU 上待读取区域的指针,对应RD_1。
ADDR_2: 指向伙伴 CPU 上待读取区域的指针,对应RD_2。
ADDR_3: 指向伙伴 CPU 上待读取区域的指针,对应RD_3。
ADDR_4: 指向伙伴 CPU 上待读取区域的指针,对应RD_4。
RD_1: 指向本地 CPU 上用于输入已读数据的区域的指针,对应ADDR_1。
RD_2: 指向本地 CPU 上用于输入已读数据的区域的指针,对应ADDR_2。
RD_3: 指向本地 CPU 上用于输入已读数据的区域的指针,对应ADDR_3。
RD_4: 指向本地 CPU 上用于输入已读数据的区域的指针,对应ADDR_4。
NDR: 状态参数 NDR:0:作业尚未开始或仍在运行。1:作业已成功完成。
ERROR: 错误状态参数 。
STATUS:错误代码。
点击开始组态按钮:
PUT组态方法和GET几乎一样,按下图组态好。
案例二:200SMART作为本地CPU,1200作为远程CPU。
本地CPU ST30 |
操作 |
远程CPU 1215C |
VD0(REAL) |
读取 |
DB1.DBD0(REAL) |
VD4(REAL) |
读取 |
DB1.DBD4(REAL) |
VD8(REAL) |
读取 |
DB1.DBD8(REAL) |
VD12(REAL) |
写入 |
DB1.DBD12(REAL) |
VD16(REAL) |
写入 |
DB1.DBD16(REAL) |
VD20(REAL) |
写入 |
DB1.DBD20(REAL) |
1200的DB1相当于200SMART中的V区,即DB1.DBD0相当于VD0。
200SMART中GET/PUT向导组态只能以字节为单位,所以远程地址为VB0,传送大小为12个字节。
组态完成后,点击生成,在调用子例程中调出生成的子程序NET_EXE.
1200中只需要创建DB1,并定义好六个REAL类型的变量,并将DB1的优化块的访问取消。