您好,欢迎访问一九零五行业门户网

西门子S7-200SMART间接寻址指令实例

创建指针步骤
例程1.通过指针访问数据表
例程2.通过指针存储数据表
例程3.通过地址偏移量来访问v存储区数据
免责声明
目录
s7-200 smart 间接寻址
间接寻址是指用指针来访问存储区的数据。指针以双字的形式存储其它存储区的地址,只能将 v 存储单元、l 存储单元或累加器寄存器(ac1、ac2、ac3)用作指针。
注意:s7-200 smart cpu 允许指针访问下列存储区: i、q、v、m、s、ai、aq、sm、t(仅限当前值)和 c(仅限当前值)。不能使用间接寻址访问单个位或访问 hc、l 或累加器存储区。
创建指针步骤
要创建指针,必须使用“移动双字”指令,将间接寻址的存储单元地址移至指针位置。;用“&”符号加上要访问的存储区地址可建立一个指针,当指令中的操作数是指针时,应该在操作数前加上“*”号。
如下图所示为以创建和使用指针示例。在该示例中,输入*ac1 表示 ac1 存储指向“移动字”(movw) 指令引用的字长度值的指针,在 vb200 和 vb201 中存储的值被移至累加器 ac0。
图1.创建和使用指针举例
其中:
通过将vb200的地址(vw100的初始字节)移动到ac1创建指针。
移动ac1中的指针引用的字值。
注意:修改指针的值时,请记住调整所访问数据的大小:访问字节时,指针值加 1;访问定时器 或计数器的字或当前值时,指针值加 2;访问双字时,指针值加 4。
例程1.通过指针访问数据表
例程所需条件:
1、软件版本:step 7-micro/win smart v2.3
2、smart cpu固件版本:v1.0及以上
3、通讯硬件:tp电缆(以太网电缆)
所实现的功能:
索引号vw1008=0时,将指定的配方0(vb100~vb104) 数据传送到(vb1500~vb1504)
索引号vw1008=1时,将指定的配方1(vb105~vb109) 数据传送到(vb1500~vb1504)
索引号vw1008=2时,将指定的配方2(vb110~vb114) 数据传送到(vb1500~vb1504)
索引号vw1008=3时,将指定的配方3(vb115~vb119) 数据传送到(vb1500~vb1504)
依次类推,具体的程序说明,参考例程内的描述。
addressing_1
例程2.通过指针存储数据表
例程所需条件:
1、软件版本:step 7-micro/win smart v2.3
2、smart cpu固件版本:v1.0及以上
3、通讯硬件:tp电缆(以太网电缆)
所实现的功能:
索引号vw1008=0时,将(vb1500~vb1504)数据传送到指定的配方0(vb100~vb104)
索引号vw1008=1时,将(vb1500~vb1504)数据传送到指定的配方1(vb105~vb109)
索引号vw1008=2时,将(vb1500~vb1504)数据传送到指定的配方2(vb110~vb114)
索引号vw1008=3时,将(vb1500~vb1504)数据传送到指定的配方3(vb115~vb119)
依次类推,具体的程序说明,参考例程内的描述。
addressing_2
例程3.通过地址偏移量来访问v存储区数据
例程所需条件:
1、软件版本:step 7-micro/win smart v2.3
2、smart cpu固件版本:v1.0及以上
3、通讯硬件:tp电缆(以太网电缆)
所实现的功能:
本例程可以实现对区任意字节数据的访问。
vd1000作为指针,指向vb0,然后利用vd1004存储的地址偏移量改变指针值,即,vd1000指向vd1000+vd1004的地址,并将该地址的数据复制到vb1008。
通过改变vd1004,可以访问v区的任意单元。
举例:
vd1004=0时,将vb0的数据传送到vb1008,
vd1004=1时,将vb1的数据传送到vb1008,
vd1004=100时,将vb100的数据传送到vb1008,
依次类推,具体的程序说明,参考例程内的描述。
addressing_3
免责声明
本例程仅供参考,程序中的cpu版本、类型可能与用户实际使用不同,用户可能需要先对例子程序做修改和调整,才能将其用于测试。本例程的作者和拥有者对于该例程的功能性和兼容性不负任何责任,使用该例程的风险完全由用户自行承担。由于它是免费的,所以不提供任何担保,错误纠正和热线支持。
其它类似信息

推荐信息