Как обратиться к элементу массива по переменному индексу

Промышленные Логические Контроллеры SIMATIC S7-200/300/400
Kreadlling
Posts: 26
Joined: Sun Mar 27, 2011 8:07 am

Как обратиться к элементу массива по переменному индексу

Post by Kreadlling »

Здравствуйте. Не подскажете как в FBD обратиться к любому элементу
массива по индексу, хранимому в переменной i? Искал по разным темам,
но не очень понял как это сделать.
Schtiel
Site Admin
Posts: 1122
Joined: Wed Sep 06, 2006 12:03 pm
Location: CIS

Post by Schtiel »

На FBD вряд ли возможно, а про индексацию массивов на STL было тут и тут
Kreadlling
Posts: 26
Joined: Sun Mar 27, 2011 8:07 am

Re:

Post by Kreadlling »

Schtiel wrote:На FBD вряд ли возможно, а про индексацию массивов на STL было тут и тут
А можно ли запрограммировать на stl, а потом перевести в FBD?
Schtiel
Site Admin
Posts: 1122
Joined: Wed Sep 06, 2006 12:03 pm
Location: CIS

Post by Schtiel »

Kreadlling wrote:А можно ли запрограммировать на stl, а потом перевести в FBD?
Можно создать блок доступа к i-му элементу массива на STL, а потом вызывать его на FBD:

Image
FB1
Show

Code: Select all

FUNCTION_BLOCK FB 1
TITLE =
VERSION : 0.1


VAR_INPUT
  IntArray : ARRAY  [1 .. 9 ] OF INT ;	
  Index : INT ;	
END_VAR
VAR_OUTPUT
  Value : INT ;	
END_VAR
VAR_TEMP
  ArrayPointer : DINT ;	
END_VAR
BEGIN
NETWORK
TITLE =

      L     P##IntArray; 
      T     #ArrayPointer; 
      L     #Index; 
      L     16; 
      *I    ; 
      L     #ArrayPointer; 
      +I    ; 
      T     #ArrayPointer; 
      LAR1  ; 
      L     W [AR1,P#0.0]; 

NETWORK
TITLE =

      T     #Value; 

END_FUNCTION_BLOCK
Image
Kreadlling
Posts: 26
Joined: Sun Mar 27, 2011 8:07 am

Re:

Post by Kreadlling »

Schtiel wrote:
Kreadlling wrote:А можно ли запрограммировать на stl, а потом перевести в FBD?
Можно создать блок доступа к i-му элементу массива на STL, а потом вызывать его на FBD:
Спасибо большое за информацию буду разбираться