zhou1211
级别: 略有小成
精华主题: 1 篇
发帖数量: 205 个
工控威望: 362 点
下载积分: 1172 分
在线时间: 66(小时)
注册时间: 2013-11-04
最后登录: 2024-09-18
查看zhou1211的 主题 / 回贴
楼主  发表于: 2021-01-17 15:34
1:
那比如说做通讯的时候,考虑到对方读取具体地址,如:
stAdsCom  at %mw1000 : ST_ADS;
在博途中如何实现

2: 一般codesys无视对象类型是这样的
VAR
    pAdr  : pvoid;(目标变量初始指针)
    pByte : pointer to byte;(指针指向byte数据类型,相当于 ref to)
    wWordBase : word;

END_VAR
//程序
pAdr := adr(wWordBase );
pByte := pAdr;
pByte^ := 16#fe;
pByte := pAdr +1;
pByte^ := 16# ff;
//结果是地址指向Word类型的wWordBase 用byte通过指针偏移一次组合而成
这种情况常用于将数据分解成原始byte,再组合成自定义类型的情况,非常常用

请问这种写指针偏移的方法博途怎么做?
本帖最近评分记录:
  • 下载积分:+1(海上的烟花) 感谢分享!
    wlmissyou
    级别: 探索解密
    精华主题: 0
    发帖数量: 62 个
    工控威望: 165 点
    下载积分: 1277 分
    在线时间: 98(小时)
    注册时间: 2017-06-11
    最后登录: 2024-11-17
    查看wlmissyou的 主题 / 回贴
    1楼  发表于: 2021-01-17 19:32
    回答:
    第一个问题:这个要具体到何种通信方式,你的问题有些笼统
    第二个问题:在博图平台上有 300 400 和1200 1500两个系列,300 400使用非优化的数据块,所以对变量的高低字节或高低字,使用AT指令来实现声明。如下示意:
    CrcVariable : Word;   // CRC校验用变量字
    CrcByte AT CrcVariable : Array[0..1] of Byte;   // CRC校验用变量的高低字节

    1200和1500可以使用符号寻址的后面跟上绝对寻址的位或字节或字。请参考以下网址:
    https://support.industry.siemens.com/cs/document/57374718/如何在-step-7-(tia-portal)-中使用符号方式按位,字节,或字访问非结构?dti=0&lc=zh-CN