加入收藏 在线留言 联系我们
关注微信
手机扫一扫 立刻联系商家
全国服务热线18717946324

6GK5004-1BD00-1AB2库存现货

更新时间
2024-11-19 08:00:00
价格
请来电询价
品牌
西门子
型号
PLC
售后
售后支持
联系电话
18717946324
联系手机
18717946324
联系人
占雪芬
立即询价

详细介绍

6GK5004-1BD00-1AB2库存现货

浔之漫智控技术有限公司长期低价销售数控伺服系统:80

2C S、802D SL、810D DE、820D SL、840C CE、840D DE、840D SL、840Di SL、S120数控系统、数控伺服驱动模块、控制模块、电源模块、备品备件等。

有一种力量,正在支持我们前行,源于博大精深,同心致远。

上海浔之漫长期低价销售西门子PLC200.300.400.S1200.S1500.ET200.Smart200,6SE70变频器.70备件.6SY7000/7010.C98面板,6RA70/28/24直流调速器,6XV电缆,6EP电源,3RW30/40/44软启动器,6AV人机触摸屏,LOGO!,6SL系列G110.G120.S120.V10.V20,MM440/430/420变频,6DR阀门定位器,7ML.7ME.7MF.7MH仪表仪器,6FC.6SN伺服数控,电机等西门子系列产品

微信图片_20221024201956.

在FC被调用时,复杂数据类型例如指针是被复制到调用者的临时变量区中,在FC内部对此V区地址直接取址放入到地址寄存器AR1或AR2是不被编译器规则接受的(导致MC7寄存器信息过长),也就是说在FC内部通过P#进行地址寄存器取址仅能支持Temp临时变量。因此如果需要在FC中操作指针等复杂输入输出变量地址需要使用累加器进行中转。
考虑到程序的一致性、遵守编译器规则和STL手册中LAR1指令说明,建议用户使用如下指令操作:
L P##Pointerbbbbb
LAR1 1.3 STEP 7 中哪些操作会覆盖DB/DI寄存器或者地址寄存器AR1/AR2的内容?
下面说明了可能引起DB/DI寄存器或者地址寄存器AR1/AR2内容改变的一些操作:

LOGO电源
  • DB寄存器和AR1受到影响的操作
    1. 使用完整的DB路径(如L DB20.Val)或者调用FC/FB时使用DB块完整地址作为其参数,则DB寄存器内容被覆盖。
    例如在OB1中调用FC1后,DB寄存器变成20。
    OPN DB1
    Call FC1
    bbbbb(bit):DB20.DBX0.2
    因此在编程的时候,OPN 指令打开数据块,通过DBX x.y的方式访问其中内容, 但是如果在打开数据块后DB寄存器的内容被修改了,则DBX x.y的方式访问变量则 会访问到错误的地址。可以通过使用符号寻址的方式或者使用完整路径编程避免,当 然重新使用 OPN指令也是可以的。
    2. 调用FC时使用bbbbbb, array, structure ,UDT作为其形参或者调用FB时使用bbbbbb, array, structure 或者UDT作为其in out形参,在FC/FB程序中访问这些地址则AR1寄存器内容被覆盖,因此当使用AR1进行间接寻址时需要注意AR1内容的正确性。

  • AR2地址寄存器和DI寄存器在FB中作为参数和静态变量的基址寻址使用。AR2和DI如果被修改,会影响FB的参数访问,如果希望在FB中使用DI寄存器或者地址寄存器AR2,必须预先保存它们中的内容,并在使用后恢复它们,例如:
    TAR2 #AR2_SAVE; //AR2寄存器状态保存到#AR2_SAVE
    L DINO;
    T #DB2_SAVE; //DI寄存器状态保存到#DB2_SAVE

  • User Program

    LAR2 #AR2_SAVE; //AR2寄存器恢复到使用前状态
    OPN DI [#DB2_SAVE]; //DI寄存器恢复到使用前状态

    1.4 如何得到多重背景FB中的变量在背景DB里的**偏移量呢?
    可以用下面的方法处理:
    TAR2 (得到多重背景FB在背景DB里的偏移地址)
    AD DW#16#00FFFFFF (屏蔽掉存储区ID,可参考32位指针格式)
    L P##Variable (得到变量在多重背景FB里的地址)
    +D (多重背景FB的偏移地址与变量在多重背景FB里地址相加,即得到实际**偏移量)
    LAR1
    上述语句就是就得到了变量在背景DB中的**偏移量,从而供后续程序处理。 1.5如何在程序中使用ANY 型指针? 简要说明如下:
    L P##bbbbb //指向存储地址指针bbbbb首地址
    //这个参数是一个Any类型,P##bbbbb指向参数bbbbb的值所在地址,这就是指针的指针
    LAR1 //装载到地址寄存器AR1中。
    L W [AR1,P#4.0] //打开DB块
    // 由Any类型结构知道Any类型的Byte4、Byte5存放的数据块号
    T #BLOCK_NO
    OPN DB [#BLOCK_NO] //如果是DB块,打开的DB块。
    L W [AR1,P#2.0] //判断ANY指针中数据长度
    // Any类型的Byte2、Byte3是重复系数,如P#DB1.DBX0.0 Byte 8后面的Byte 8
    _001:T #DATA_LEN //通常此处做loop循环!!
    L D [AR1,P#6.0] //找出需要计算数据区的开始地址
    // Any类型Byte6~Byte9是32位区域地址

    相关产品

    联系方式

    • 电  话:18717946324
    • 联系人:占雪芬
    • 手  机:18717946324
    • 微  信:18717946324