>
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的优化块的访问取消。
—THE END—
点点在看给小编加个鸡腿
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |