回复:用SCL怎样把两个数分别写到一个双字的高八位和低二十四位啊

瑞士军刀1893

  • 帖子

    109
  • 精华

    0
  • 被关注

    5

论坛等级:侠客

注册时间:2010-08-17

普通 普通 如何晋级?

发布于 2014-11-24 19:13:33

4楼

pulseNumbers : DINT;
position AT pulseNumbers : ARRAY [0..2] OF BYTE;
_servoPosition : STRUCT
STS_0 : BYTE;
STS_POS : ARRAY [0..2] OF BYTE;
END_STRUCT;
STS_TAR_POS : STRUCT
STS_0 : BYTE; // Multiplier G; Fa = Fb * R * G (value range 1 to 255)
STS_POS : ARRAY [0..2] OF BYTE;
(* STS_1BYTE---Distance (bit 19 to bit 16)
STS_2BYTE---Distance (bit 15 to bit 8)
STS_3BYTE---Distance (bit 7 to bit 0) (Value range for bytes 1 to 3 is 1 to 1 048 575)
*)
END_STRUCT;
_servoPosition.STS_POS := position;
以这种方式可以将DINT写到3个byte里,但仿真时,总觉得哪里怪怪的,有人说清楚吗?
天道酬勤,DayDayUp。
评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-300/400

共有54777条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

  • 分享

  • 只看
    楼主

top
X 图片
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。