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

  • 相关阅读:
    Server Application Unavailable 解决办法 (转)
    SQL SERVER:分割函数 split
    Win32汇编_基础
    Win32汇编_异常_筛选器
    创建进程常用函数
    内存常用函数
    桃花庵歌
    文天祥的诗
    Socket I/O模型全接触
    函数指针的神奇
  • 原文地址:https://www.cnblogs.com/twodog/p/12135251.html
Copyright © 2011-2022 走看看