Страница 4 из 4 ПерваяПервая ... 234
Показано с 31 по 34 из 34

Тема: Работа с массивами

  1. #31

    По умолчанию

    https://owen.ru/product/codesys_v3/documentation
    https://owen.ru/uploads/373/cds23_manual_v2.8.pdf

    В руководстве по версии 3.5 описание языка более наглядно представлено.

  2. #32
    Пользователь
    Регистрация
    23.09.2008
    Адрес
    Центророссийск
    Сообщений
    2,861

    По умолчанию

    Цитата Сообщение от goldenlife Посмотреть сообщение
    ...есть массив из REAL-переменных и есть массив из WORD-переменных. Нужно сравнить каждую переменную массива с "нулём" (или другим значением) и установить контрольный бит в TRUE. ...У меня набор параметров из 10 real и 9 word...
    Код:
    var  
      x,check_x: array[1..10] of real := 10("нулём" или другим значением); //юзается x[] и w[] 
      w,check_w: array[1..9] of word := 9("нулём" или другим значением);
      контрольный бит: boolean;
    end_var
    --------
    контрольный бит := sysmemcmp(adr(x),adr(check_x),sizeof(x)) = 0 and sysmemcmp(adr(w),adr(check_w),sizeof(w)) = 0;

  3. #33

    По умолчанию

    Цитата Сообщение от Валенок Посмотреть сообщение
    Код:
    var  
      x,check_x: array[1..10] of real := 10;   ("нулём" или другим значением); //юзается x[] и w[] 
      w,check_w: array[1..9] of word := 9;   ("нулём" или другим значением);
    control : bool;
    end_var
    --------
    control  := sysmemcmp(adr(x),adr(check_x),sizeof(x)) = 0 and sysmemcmp(adr(w),adr(check_w),sizeof(w)) = 0;
    Даже если соблюсти весь синтаксис, то Codesys 2.3 пишет что:
    1. Ошибка 4001 - Идентификатор SYSMEMCMP не определён.
    2. Ошибка 4250 - Требуется "ST" - выражение или окончание POU.

  4. #34

    По умолчанию

    Цитата Сообщение от goldenlife Посмотреть сообщение
    Даже если соблюсти весь синтаксис, то Codesys 2.3 пишет что:
    1. Ошибка 4001 - Идентификатор SYSMEMCMP не определён.
    2. Ошибка 4250 - Требуется "ST" - выражение или окончание POU.
    Надо добавить биб-ку SisLibMem.lib и работать будет только в живом ПЛК, в эмуляции не работает,
    в работе измените любую переменную массива на 0.
    Код:
    var  
      x, check_x: array[1..10] of real := 10(15.3);   (* массив основной и копия, 10 переменных массива равны  15,3   *)
      w, check_w: array[1..9] of word := 9(45);     (* массив основной и копия, 9 переменных массива равны  45   *)
      control : bool;
    end_var
    --------
    control  :=NOT (SysMemCmp(ADR(x),ADR(check_x),SIZEOF(x))=0 AND SysMemCmp(ADR(w),ADR(check_w),SIZEOF(w))=0) ;
    Последний раз редактировалось kondor3000; 07.05.2025 в 08:16.

Страница 4 из 4 ПерваяПервая ... 234

Похожие темы

  1. Работа с массивами
    от Леонид в разделе ПЛК1хх
    Ответов: 31
    Последнее сообщение: 30.05.2020, 23:13
  2. CoDeSys работа с массивами.
    от Роман26 в разделе Эксплуатация
    Ответов: 13
    Последнее сообщение: 10.08.2019, 07:52
  3. Работа с рецептами
    от Aleksandr в разделе ПЛК1хх
    Ответов: 3
    Последнее сообщение: 23.01.2012, 12:36
  4. Работа с массивами
    от MerlinLegacy в разделе ПЛК1хх
    Ответов: 2
    Последнее сообщение: 08.08.2011, 13:41
  5. подскажите по работе с массивами
    от alexval2006 в разделе ПЛК1хх
    Ответов: 4
    Последнее сообщение: 11.03.2010, 15:36

Ваши права

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