Страница 2 из 2 ПерваяПервая 12
Показано с 11 по 14 из 14

Тема: CoDeSys работа с массивами.

  1. #11
    Пользователь Аватар для Роман26
    Регистрация
    30.01.2009
    Адрес
    Россия, Ставрополь
    Сообщений
    80

    Post

    Валенок, всё гениальное просто)


    MinI := 1;

    FOR incr := 1 TO 3 DO
    IF MhArr[incr] < MhArr[MinI] THEN
    MinI := incr;
    END_IF
    END_FOR

    И что мне было так заморачиваться...
    Ремонтно-строительная компания, г.Ставрополь

  2. #12

    По умолчанию

    Цитата Сообщение от Роман26 Посмотреть сообщение
    Валенок, всё гениальное просто)


    MinI := 1;

    FOR incr := 1 TO 3 DO
    IF MhArr[incr] < MhArr[MinI] THEN
    MinI := incr;
    END_IF
    END_FOR

    И что мне было так заморачиваться...
    MinI := 1;

    FOR incr := 2 TO 3 DO
    IF MhArr[incr] < MhArr[MinI] THEN
    MinI := incr;
    END_IF
    END_FOR

  3. #13
    Пользователь Аватар для Роман26
    Регистрация
    30.01.2009
    Адрес
    Россия, Ставрополь
    Сообщений
    80

    Thumbs up

    Цитата Сообщение от CLPE Посмотреть сообщение
    MinI := 1;

    FOR incr := 2 TO 3 DO
    IF MhArr[incr] < MhArr[MinI] THEN
    MinI := incr;
    END_IF
    END_FOR
    О, да! Ещё лучше!
    Ремонтно-строительная компания, г.Ставрополь

  4. #14

    По умолчанию

    Всем спасибо за советы. 7 лет спустя нашел вашу ветку.
    пользовался http://www.drivesandsystems.com/code...-plc-programs/
    и https://forum.codesys.com/viewtopic.php?t=8099

    моя задача: передать процедуре (функции) массив, получить отсортированный массив
    мое решение для Codesys2.3:
    текст PLC_PRG
    PROGRAM PLC_PRG
    VAR CONSTANT
    N:INT:=9;
    END_VAR
    VAR
    arr1: ARRAY [0..N] OF INT := 399,288,1,4,5,6,7,8,9;
    xRunSort:BOOL;
    END_VAR
    VAR CONSTANT
    END_VAR

    IF xRunSort THEN
    sort2(ADR(arr1));
    xRunSort := FALSE;
    END_IF


    текст функции Сортировки
    FUNCTION sort2 : BOOL
    VAR_INPUT
    ptr:POINTER TO ARRAY [0..N] OF INT;
    END_VAR
    VAR
    i,j:INT;
    iTemp:INT;
    iOne: INT;
    iTwo: INT;
    END_VAR
    FOR j := 0 TO N-1 DO
    FOR i:=0 TO N-j-1 DO
    iOne:=ptr^[i];
    iTwo:=ptr^[i+1];
    IF iOne>iTwo THEN iTemp:= iOne; iOne:=iTwo; iTwo:=iTemp; END_IF
    ptr^[i]:=iOne;
    ptr^[i+1]:=iTwo;
    END_FOR
    END_FOR

Страница 2 из 2 ПерваяПервая 12

Похожие темы

  1. Работа с массивами
    от Леонид в разделе ПЛК1хх
    Ответов: 31
    Последнее сообщение: 30.05.2020, 23:13
  2. Работа с массивами
    от MerlinLegacy в разделе ПЛК1хх
    Ответов: 2
    Последнее сообщение: 08.08.2011, 14:41
  3. подскажите по работе с массивами
    от alexval2006 в разделе ПЛК1хх
    Ответов: 4
    Последнее сообщение: 11.03.2010, 15:36
  4. работа Mva 8
    от ооо в разделе Помощь Разработчикам
    Ответов: 4
    Последнее сообщение: 01.12.2009, 23:38
  5. плк-150 работа с трм-138
    от DEN в разделе ПЛК1хх
    Ответов: 1
    Последнее сообщение: 04.05.2007, 11:19

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •