回复:S7300如何实现连续多个WORD的高低字节转换

已锁定

askab

  • 帖子

    405
  • 精华

    5
  • 被关注

    34

论坛等级:侠圣

注册时间:2005-07-24

黄金 黄金 如何晋级?

发布于 2022-03-16 12:06:16

3楼

设想建立一个SCL语言的FC块,在内部用FOR循环,

/////////////////////////////////////////////////////////


FUNCTION_BLOCK FB44


TITLE = 'Block Title'

//

// Block Comment...

//

VERSION: '1.0'

AUTHOR: baikai

NAME: BYTE_BYTE

FAMILY: baikai

know_how_protect


// Block Parameters

VAR_INPUT

    // Input Parameters

Main_var:WORD;             //输入的字

BOOL_var AT Main_var :ARRAY[0..15] OF BOOL;  // 将字拆分为位 ,因为原来做的是WORD TO BOOL

END_VAR

VAR

I:INT;

N:INT;

up_bit_out: ARRAY[0..7]  OF BOOL;      // 直接取原来的低位 0--7 给入高位  

low_bit_out:ARRAY[8..15] OF BOOL;    // 低位同理


S1 AT up_bit_out:BYTE;               // 将BOOL 转为为  BYTE

S2 AT low_bit_out:BYTE;

END_VAR    

VAR_OUTPUT

    // Output Parameters

up_bit_out1: BYTE;

low_bit_out1:BYTE;


END_VAR


    FOR I:= 0 TO 7 BY 1 DO                                //采用俩个FOR 读取输入

        // Statement Section

    up_bit_out[I]:= BOOL_var[I];

    END_FOR;

       FOR N:= 8 TO 15 BY 1 DO

        // Statement Section

    low_bit_out[N]:= BOOL_var[N];

    END_FOR;

    up_bit_out1:= S1;

    low_bit_out1:= S2;

END_FUNCTION_BLOCK


结果例如输入 W#16#  1234    输出 高位  W#16#12  低位 W#16#34


大家同行,you ok ? me !
评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-300/400

共有54660条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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