回复:输入地址

已锁定

askab

  • 帖子

    405
  • 精华

    5
  • 被关注

    34

论坛等级:侠圣

注册时间:2005-07-24

黄金 黄金 如何晋级?

发布于 2021-12-04 11:52:30

4楼

//买的cpu是314-2 pn/dp默认输入点为24个,但是现在只需要用前16个。还买了一个拓展模块是16??16的,现在就是想让cpu的输入地址是I0.0到I1.7紧接着拓展模块上面的地址是I2.0daoI3.8这个需要在软件上面怎么设置(简单讲就是怎么更改cpu默认的结束地址,软件上面这个是灰色的改不了不知道有没有其他办法)//

首先物理地址是设定起始地址后连续的,例如DI32 点 当起始为I0.0 则其它地址是顺延的,最后一个I3.7 

那么按照你说的第一个DI24 我只需要16个 ,扩展模块上 DI16 我用16个,我希望用连续的物理地址。

参考思路,DI24  I0.0------I2.7   DI16  I3.0---I4.7

L IB0 

T  DB1.DBB0

L LB1 

T DB1.DBB1

L IB3

T DB1.DBB2

L IB4

T DB1.DBB3

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

在程序里  DB1.DBX0.0 ---DB1.DBX1.7 对应你需要的I0.0---I1.7  (I2.0---2.7 不用)

                DB1.DBX2.0---DB1.DBX3.7 对应你需要的I2.0---I3.7   实际是I3.0--I4.7

以后程序只出现 DB1.DBX 即可,

这样逻辑控制永远不变,当DI/DO 损坏,仅仅,只需要更换DI/DO 点即可。

AI/AO 同理。

甚至当增加了隔离变送器后,DI/DO  AI/AO 基本免维护,仅更换隔离变送器。

我的程序都是这样做的,逻辑系统出来,在根据工艺要求确认接口。

///以上是简单的,但是IB0 还是顺延的 I0.0---I0.7
下面是自由组合的。


FUNCTION_BLOCK FB21

TITLE = 'BOOL_TO_DWORD'

//

// Block Comment...

//

VERSION: '1.0'

AUTHOR: baikai

NAME: B_DW

FAMILY: baikai

know_how_protect

(* 将BOOL量转换为双字*)


VAR_INPUT

X0    :    BOOL;

X1    :    BOOL;

X2    :    BOOL;

X3    :    BOOL;

X4    :    BOOL;

X5    :    BOOL;

X6    :    BOOL;

X7    :    BOOL;

X8    :    BOOL;

X9    :    BOOL;

X10    :    BOOL;

X11    :    BOOL;

X12    :    BOOL;

X13    :    BOOL;

X14    :    BOOL;

X15    :    BOOL;

X16    :    BOOL;

X17    :    BOOL;

X18    :    BOOL;

X19    :    BOOL;

X20    :    BOOL;

X21    :    BOOL;

X22    :    BOOL;

X23    :    BOOL;

X24    :    BOOL;

X25    :    BOOL;

X26    :    BOOL;

X27    :    BOOL;

X28    :    BOOL;

X29    :    BOOL;

X30    :    BOOL;

X31    :    BOOL;


END_VAR




VAR_OUTPUT

    // Output Parameters

OUT:DWORD;    

END_VAR



VAR

NO:INT;

S1: ARRAY[0..31] OF BOOL; 

S2 AT S1: DWORD;

END_VAR


    FOR NO:= 0 TO 31 BY 1 DO

       S1[0]    :=    X0;

S1[1]    :=    X1;

S1[2]    :=    X2;

S1[3]    :=    X3;

S1[4]    :=    X4;

S1[5]    :=    X5;

S1[6]    :=    X6;

S1[7]    :=    X7;

S1[8]    :=    X8;

S1[9]    :=    X9;

S1[10]    :=    X10;

S1[11]    :=    X11;

S1[12]    :=    X12;

S1[13]    :=    X13;

S1[14]    :=    X14;

S1[15]    :=    X15;

S1[16]    :=    X16;

S1[17]    :=    X17;

S1[18]    :=    X18;

S1[19]    :=    X19;

S1[20]    :=    X20;

S1[21]    :=    X21;

S1[22]    :=    X22;

S1[23]    :=    X23;

S1[24]    :=    X24;

S1[25]    :=    X25;

S1[26]    :=    X26;

S1[27]    :=    X27;

S1[28]    :=    X28;

S1[29]    :=    X29;

S1[30]    :=    X30;

S1[31]    :=    X31;

 

        

        

    END_FOR;



OUT:= S2;

END_FUNCTION_BLOCK

/// X0---X31 自由输入端口,S2 为DB1.DBD0  是连续的,相当于把外部的信号,按照一定的顺序排列好,再去使用。

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

请填写推广理由:

本版热门话题

SIMATIC S7-300/400

共有54624条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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