Step 7 ModBus TCP Client

ziede

Level-1
Beiträge
44
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Moin,
ich koennte eure Hilfe gebrauchen...
Ich "darf" mit einer S7 417 PN/DP H-Steuerung (hat einem extra CP 443-1 nur fuer ModBus TCP) von div. ModBus TCP Servern daten abholen.
Der ModBus TCP client (MODBUS/TCP CP Redundant) ist installiert und Lizensiert.
Von den ModBus TCP-Servern muessen ca. 200 Register abgeholt werden.
Da faengt jetzt mein Problem an, ich bekommen den Baustein nur dazu 125 Register abzuholen.
Ich habe (bis jetzt) versucht
- den Datenbereich komplett im Parameter DB anzugeben (ohne Erfolg)
- den Datenbereich im Parameter DB aufzuteilen (ohne Erfolg)
- diiverses an den Aufruf parametern des FB909 (MB_REDCL) geaendert (auch erfolglos).

evtl. habt ihr einen Tip fuer mich, was ich da verkehrt machen...

Der Aufruf:
Code:
      L     0
      T     "iDB_DMPM".R_PT_HAM_01.UNIT
      L     3
      T     "iDB_DMPM".R_PT_HAM_01.DATA_TYPE
      L     1
      T     "iDB_DMPM".R_PT_HAM_01.START_ADDRESs
      L     200
      T     "iDB_DMPM".R_PT_HAM_01.LENGTH
      CLR 
      =     "iDB_DMPM".R_PT_HAM_01.WRITE_READ

//preset Parameter
      L     1
      T     "MB_PARA_R_PT_HAM_01".data_type_2
      L     1004
      T     "MB_PARA_R_PT_HAM_01".db_2
      L     126
      T     "MB_PARA_R_PT_HAM_01".start_2
      L     250
      T     "MB_PARA_R_PT_HAM_01".end_2

      CALL  #iDB_R_PT_HAM_01
       db_param        :="MB_PARA_R_PT_HAM_01"
       REG_KEY_DB      :="MB_LICENSE_DB"
       check_conn_cycle:=T#5S
       use_all_conn    :=FALSE
       MONITOR         :=T#1S           // Monitoring time for data reception from link partner
       ENQ             :="iDB_DMPM".R_PT_HAM_01.ENQ    // Job triggered on positive edge
       UNIT            :="iDB_DMPM".R_PT_HAM_01.UNIT    // Unit identifier
       DATA_TYPE       :="iDB_DMPM".R_PT_HAM_01.DATA_TYPE    // Data type to be processed; 1= Coils; 2= Inputs; 3= Holding Reg; 4= Input Reg
       START_ADDRESS   :="iDB_DMPM".R_PT_HAM_01.START_ADDRESs    // MODBUS start address
       LENGTH          :="iDB_DMPM".R_PT_HAM_01.LENGTH    // Number of values to be processed
       WRITE_READ      :="iDB_DMPM".R_PT_HAM_01.WRITE_READ    // 0= Read access; 1= Write access
       id_0_a          :="iDB_DMPM".R_PT_HAM_01.id_0_a    // Connection ID for CPU/CP0, read from the parameter DB
       id_1_a          :="iDB_DMPM".R_PT_HAM_01.id_1_a    // Connection ID for CPU/CP1, read from the parameter DB
       id_0_b          :="iDB_DMPM".R_PT_HAM_01.id_0_b    // Connection ID for CPU/CP0, read from the parameter DB, only double-sided redund
       id_1_b          :="iDB_DMPM".R_PT_HAM_01.id_1_b    // Connection ID for CPU/CP1, read from the parameter DB, only double-sided redund
       LICENSED        :="iDB_DMPM".R_PT_HAM_01.LICENSED    // License status of the block: 1= licensed; 0= not licensed
       BUSY            :="iDB_DMPM".R_PT_HAM_01.busy    // Processing status AG_LSEND or AG_LRECV; 1= being processed; 0= not being proces
       DONE            :="iDB_DMPM".R_PT_HAM_01.DONE    // Activated job completed without errors on at least 1 connection
       ERROR           :="iDB_DMPM".R_PT_HAM_01.ERROR    // 1= An error has occurred on all connections
       STATUS_0A       :="iDB_DMPM".R_PT_HAM_01.STATUS_0A    // Status for connection 0A
       STATUS_1A       :="iDB_DMPM".R_PT_HAM_01.STATUS_1A    //  Status for connection 1A
       STATUS_0B       :="iDB_DMPM".R_PT_HAM_01.STATUS_0B    // Status for connection 0B
       STATUS_1B       :="iDB_DMPM".R_PT_HAM_01.STATUS_1B    // Status for connection 1B
       IDENT_CODE      :=
       RedErrS7        :="iDB_DMPM".R_PT_HAM_01.RedErrS7    // 1= Loss of redundancy at the S7 end
       RedErrDev       :="iDB_DMPM".R_PT_HAM_01.RedErrDev    // 1= Loss of redundancy at the communications partner end
       TotComErr       :="iDB_DMPM".R_PT_HAM_01.TotComErr    // 1= Complete communication failure
       Init_Error      :="iDB_DMPM".R_PT_HAM_01.Init_Error    // 1= An error occurred during initialization
       Init_Status     :="iDB_DMPM".R_PT_HAM_01.Init_Status    // Status of initialization
       Init            :="iDB_DMPM".R_PT_HAM_01.init    // Initialization on a positive edge


// start cyclic query

//     U     M      5.4
      FP    "iDB_DMPM".R_PT_HAM_01.FP_start_req
      UN    "iDB_DMPM".R_PT_HAM_01.init
      UN    "iDB_DMPM".R_PT_HAM_01.ENQ
      UN    "iDB_DMPM".R_PT_HAM_01.busy
      UN    "iDB_DMPM".R_PT_HAM_01.ERROR
      S     "iDB_DMPM".R_PT_HAM_01.ENQ



      U     "iDB_DMPM".R_PT_HAM_01.ENQ
      U     "iDB_DMPM".R_PT_HAM_01.DONE
      O     "iDB_DMPM".R_PT_HAM_01.init
      R     "iDB_DMPM".R_PT_HAM_01.ENQ

der Parameter DB:

Code:
double_sided_red        BOOL    FALSE
id_0_a                  WORD    W#16#1
id_1_a            WORD    W#16#1
laddr_0            WORD    W#16#3F5A
laddr_1            WORD    W#16#3F56
server_client        BOOL    FALSE
single_write        BOOL    FALSE
reserved        BYTE    B#16#0
data_type_1             BYTE    B#16#3
db_1            WORD    W#16#3EB
start_1            WORD    W#16#1
end_1            WORD    W#16#7D
data_type_2             BYTE    B#16#3
db_2            WORD    W#16#3EC
start_2            WORD    W#16#7E
end_2            WORD    W#16#FA
data_type_3             BYTE    B#16#0
...  
end_8            WORD    W#16#0
 
Zurück
Oben