• 西门子SCL读写DB数据


    数据块间接寻址方式,仅供参考。

    STATUS_1:= DB11.DW[COUNTER]; //字节间接寻址
    STATUS_2:= DB12.DX[WNO, BITNO]; //位间接寻址,用户改变WNO,BITNO数值即可
    STATUS_1:= Database1.DW[COUNTER]; // Database1为DB类型的本地变量
    STATUS_2:= Database2.DX[WNO, BITNO];
    STATUS_1:= WORD_TO_BLOCK_DB(INDEX).DW[COUNTER];
    //INDEX被定义为 BLOCK_DB 数据类型,COUNTER为整数数据类型,这样可以实现/数据块编号,
    字节地址同时间接寻址,此功能是一种功能很强间接寻址方式。

    数据块直接寻址方式,仅供参考。

    STATUSBYTE :=DB101.DB10; //字节直接寻址格式
    STATUS_3 :=DB30.D1.1; //位直接寻址格式
    MEASVAL :=DB25.DW20; //字直接寻址格式
    STATUSBYTE :=Status_data.DB10;
    STATUS_3 :="New data".D1.1;
    MEASVAL :=Measdata.DW20;
    STATUS_1 :=WORD_TO_BLOCK_DB (INDEX).DW10;

    BLOCK_DB类型使用。

    1. copy the individual variables:
    In this case every variable is read one by one from the user data blocks. The addressing in the data blocks is
    absolutely. This is particularly suitable for small amounts of data.
    1. Kopieren der einzelnen Variablen:
    In diesem Fall wird jede Variable einzeln aus dem Anwenderdatenbaustein gelesen. Die Adressierung im
    Datenbaustein erfolgt absolut. Dies ist besonders für kleine Datenmengen geeignet.
    addressing with Block-number / Adressierung über DB-Nummer
    FUNCTION_BLOCK FB1
    VAR_INPUT
    DB_NO : BLOCK_DB; //Number of the Data-Block / DB-Nummer先声明一个BLOCK_DB类型
    END_VAR
    VAR
    S : STRUCT
    // internal structure / interne Struktur
    VALUE1 : WORD;
    VALUE2 : REAL;
    VALUE3 : BYTE;
    VALUE4 : BYTE;
    END_STRUCT;
    END_VAR
    S.VALUE1 := DB_NO.DW8;//对于WORD类型的,直接这样访问即可
    S.VALUE2 := DWORD_TO_REAL(DB_NO.DD10);//对于其它类型的数据,由于DB_N0的块号不定,
    //系统不知道DD10是什么数据类型,前边要用双字转成实数类型的语句,不能直接用DB_NO.xxx访问,
    //否则会报无效的数据类型
    S.VALUE3 := DB_NO.DBB14 ;
    S.VALUE4 := DB_NO.DBB15;
    END_FUNCTION_BLOCK
    addressing with Any-pointer / Adressierung über Any-Pointer
    FUNCTION_BLOCK FB2
    VAR_INPUT
    DB_ANY : ANY; // Any-Pointer of the Data-Block / Any-pointer für DB
    AnyPointer AT DB_ANY: STRUCT
    BYTE0 :BYTE; // Byte 0
    TYP :BYTE; // Byte 1 Data-/Parametertype / Byte 1 Daten- / Parametertyp
    ANZ :WORD; // Byte 2+3 Lenth of data / Byte 2-3 Datenlnge
    DBNO :WORD; // Byte 4+5 DB-Number / Byte 4+5 DB-Nummer
    BZ :DWORD; // Byte 6 to 10 Pointer / Byte 6 bis 10 Bereichszeiger
    END_STRUCT;
    END_VAR
    VAR
    S : STRUCT
    //internal stucture / interne Struktur
    VALUE1 : WORD;
    VALUE2 : REAL;
    VALUE3 : BYTE;
    VALUE4 : BYTE;
    END_STRUCT;
    END_VAR
    S.VALUE1 := WORD_TO_BLOCK_DB(AnyPointer.DBNO).DW8;
    S.VALUE2 := DWORD_TO_REAL(WORD_TO_BLOCK_DB(AnyPointer.DBNO).DD10);
    S.VALUE3 := WORD_TO_BLOCK_DB(AnyPointer.DBNO).DBB14 ;

    http://www.360doc.com/content/12/0505/13/7023119_208807550.shtml

    转载于:https://www.cnblogs.com/minecity/p/10276017.html

  • 相关阅读:
    Firefly多路人脸识别解决方案
    Jquery插件开发之图片放大镜效果(仿淘宝)
    html5 Game开发系列文章之 零[开篇]
    html5 Game开发系列文章之 一 精灵(上)
    html5 Game开发系列文章之 三 搭建基本游戏框架(代码封装)
    html5 Game开发系列文章之 二 精灵(下)
    JQEURY 插件之 简洁小提示框效果[ToolTips]
    18位身份证和组织机构代码校验ORACLE函数
    linux下apache+SVN搭建完美版
    MYSQL的常用命令和增删改查语句和数据类型
  • 原文地址:https://www.cnblogs.com/twodog/p/12135252.html
Copyright © 2020-2023  润新知