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

  • 相关阅读:
    Hystrix使用说明,配置参数说明
    服务限流 -- 自定义注解基于RateLimiter实现接口限流
    Java生产环境下问题排查
    Java垃圾回收(GC)机制详解
    RabbitMQ如何解决各种情况下丢数据的问题
    JWT如何在Spring Cloud微服务系统中在服务相互调时传递
    LeetCode 117th Weekly Contest 总结
    系统设计总结
    单调栈总结
    LeetCode 116th Weekly Contest 总结
  • 原文地址:https://www.cnblogs.com/twodog/p/12135251.html
Copyright © 2011-2022 走看看