电子开发网

电子开发网电子设计 | 电子开发网Rss 2.0 会员中心 会员注册
搜索: 您现在的位置: 电子开发网 >> 电子开发 >> 梯形图实例 >> 正文

西门子S7-200 SMART PLC用指针存储数据表的例子程序梯形图实例  间接寻址

作者:佚名    文章来源:本站原创    点击数:    更新时间:2024/1/2

**用指针存储数据表的例子程序**
本例中用 VD14 作为指向配方表的指针;
配方表的起始地址为 VB100,每条配方的数据长度为5字节,共定义4条配方;
VW1008 用来存储配方号,如果每条配方的长度为 5 个字节,则用这个配方号乘以 5  就可以得到这个配方起始地址的偏移量,用指针加上此偏移量,就可以访问表中的每一条配方。
最后将从VB1500 开始的 5 个字节数据复制到指定配方中。

梯形图实例如下:

BLKMOV这里是传送指令和普通的MOV_DW指令相比,它的区别在于MOV指令只能传送一个变量,但是BLK可以批量传送多个寄存器的值。最多传255个。
如上图是BLKMOV_B指令。他有3个管脚。左边IN管脚的寄存器传给OUT管脚的寄存器,N管脚是数量,以IN和OUT为首寄存器开始的N个寄存器。

西门子S7-200SMART PLC用指针存储数据表的例子程序 

STL语句如下:

TITLE=**用指针存储数据表的例子程序**
// 本例中用 VD14 作为指向配方表的指针;
// 配方表的起始地址为 VB100,每条配方的数据长度为5字节,共定义4条配方;
// VW1008 用来存储配方号,如果每条配方的长度为 5 个字节,则用这个配方号乘以 5 
// 就可以得到这个配方起始地址的偏移量,用指针加上此偏移量,就可以访问表中的每一条配方。
// 最后将从VB1500 开始的 5 个字节数据复制到指定配方中。


Network 1
// 网络标题
// 创建一个指向配方表起始地址的指针
LD     SM0.0
MOVD   &VB100, VD14


Network 2
// 将配方号转换成双整型,这样才可以和指针数据进行运算
LD     SM0.0
ITD    VW1008, VD18


Network 3
// 根据配方号计算偏移量,每条配方的长度为 5 个字节,用这个配方号乘以 5  就可以得到这个配方起始地址的偏移量
LD     SM0.0
MOVD   +5, VD22
*D     VD18, VD22


Network 4
// 指针加上此偏移量即可得到指向指定配方的指针
LD     SM0.0
+D     VD22, VD14


Network 5
// 将VB1500-VB1504数据传送到指定配方中,VB1500-VB1504由用户在状态表中定义。
LD     SM0.0
BMB    VB1500, *VD14, 5

Tags:指针,间接寻址,西门子PLC,梯形图实例  
责任编辑:admin
请文明参与讨论,禁止漫骂攻击,不要恶意评论、违禁词语。 昵称:
1分 2分 3分 4分 5分

还可以输入 200 个字
[ 查看全部 ] 网友评论
推荐文章
最新推荐
关于我们 - 联系我们 - 广告服务 - 友情链接 - 网站地图 - 版权声明 - 在线帮助 - 文章列表
返回顶部
刷新页面
下到页底
晶体管查询