zoukankan      html  css  js  c++  java
  • 西门子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

  • 相关阅读:
    js实现快速排序
    使用NodeList
    变量提升问题
    使用Location对象查询字符串参数
    一天一小段js代码(no.2)
    一天一小段js代码(no.1)
    JS闭包中的this对象
    JS数组去重
    FreeCodeCamp----Intermediate Algorithm Scripting解法
    关于表单验证
  • 原文地址:https://www.cnblogs.com/twodog/p/12135251.html
Copyright © 2011-2022 走看看