Как выполнить файловый ввод / вывод в CODESYS (IEC 61131-3)?

Я использую устройство автоматизации (оснащенное CODESYS) для вычисления выходного значения функционального блока. Чтобы убедиться, что функция работает должным образом, мы хотели бы сравнить это выходное значение с выходным результатом другого функционального блока, который мы не записали.

Чтобы сообщить результат этого сравнения, мы хотели бы, чтобы два упомянутых выше значения были нарисованы в форме графика. Поэтому нам нужно иметь временную строку этих двух данных (в формате csv или в любом другом формате). Я провел небольшое исследование в Google, а также взглянул на этот вопрос. Похоже, не так много информации о том, как выполнять файловый ввод / вывод с использованием CODESYS.

Мне интересно, имел ли кто-либо подобный опыт (выполнение синхронного файлового ввода-вывода для генерации данных CSV).

Любая идея высоко ценится. Благодарю.

2 ответа

Смотрите библиотеку FILE: https://help.codesys.com/webapp/Examples;product=CAA_FILE;version=3.5.11.0

В основном, что вы должны сделать, это:

  1. Например, создайте буфер данных для ваших CSV-строк.
    LineArray : ARRAY[1..100] OF STRING[255].
  2. Сохраните измеренные значения в строковый буфер с некоторым интервалом. использование CONCAT а также REAL_TO_STRING создать действительную линию CSV.

  3. В то же время, откройте файл с FILE.Open функциональный блок

  4. Используйте дескриптор открытого файла для записи данных в файл (FILE.Write) из буфера. Не забудьте переместить буфер после записи, например, с помощью MemCpy.

  5. После того, как все строки написаны, используйте FILE.Close,

Этот вопрос недавно был задан в серии учебных пособий доктора Ализаде по Codesys. Вот ссылка на него. Это в основном сужается, чем использование функциональности трассировки Codesys.

Другие вопросы по тегам