Интерфейс командной строки

Общее описание

В составе CannyLab поставляется утилита "clcli.exe" реализующая интерфейс командной строки (CLI) к некоторым функциям CannyLab. Данная утилита позволяет автоматизировать выполнение ряда типовых операций доступных в CannyLab при ее запуске из коммандной строки Windows. Утилита возвращает коды возврата соответствующие успешному выполнению команды или ошибке в соответствии с соглашениями Windows, что позволяет использовать ее в пакетном режиме в файлах .bat или .cmd и в системах автоматической сборки.

Строка вызова

Строка вызова утилиты состоит из имени исполняемого файла утилиты, команды и ее возможных аргументов и параметров разделенных сиволами пробел или табуляция.

Имя исполняемого файла утилиты

Исполняемый файл утилиты носит имя clcl.exe. Если запустить данный файл без указания команды и ее аргументов, то в консоль будет выведена краткая справка по доступным опциям запуска утилиты.

Команда

При вызове утилиты имя команды указывается через разделитель (пробел или знак табуляции) следом за именем исполняемого файла утилиты. Например, clcli check-cfd ....

Аргументы

Аргументы, указываемые в командной строке, передаются непосредственно в вызываемую команду. Например, если выполнить clcli check-cfd test.cfd, аргумент test.cfd укажет на имя файла, которое передается в команду check-cfd.

Параметры

Параметры, указываемые в командной строке, передаются непосредственно в вызываемую команду. Например, при выполнении clcli set-value --src test.cfd --dst test1.cfd --label constant --value 1024 параметры --src, --dst, --label, --value и их значения передаются в команду set-value.

Команды CLI

Пустая команда

clcli

При выполнении clcli без указания каких-либо параметров, пользователю будет показана краткая справка по доступным командам интерфейса командной строки. Вызов справки также доступен при выполнении clcli -h или clcli --help. Кроме того, справка будет отображена при вводе пользователем некорректной команды.

Содержание справки по доступным командам интерфейса командной строки.
Условные обозначения в краткой справке по доступным командам интерфейса командной строки:
 - <...> - аргумент, например название файла;
 - --... - параметр без значения;
 - --... <...> - параметр со значением;
 - [...] - необязательный параметр.

clcli --version - вывод на экран текущей версии интегрированной среды разработки CannyLab.

При выполнении clcli с параметром --version (т.е. clcli --version), на экране будет отображена текущая версия среды разработки CannyLab.

Отображение текущей версии интегрированной среды разработки CannyLab.

merge-cfd

Команда предоставляет возможность автоматического объединения нескольких функциональных диаграмм в одну.

Формат команды: clcli merge-cfd <result-file> <input-file1> [<input-file2>]...

Аргументы команды:

  • <result-file> - имя результирующего файла и путь к нему, т.е. расположение и название файла, который будет содержать результат выполнения команды - объединенную функциональную диаграмму;
  • <input-file1> - имя первого исходного файла диаграммы и путь к нему, т.е. расположение и название файла, содержание которого будет использовано в процессе объединения при выполнении команды;
  • <input-file2> - имя второго исходного файла диаграммы и путь к нему, т.е. расположение и название файла, содержание которого будет использовано в процессе объединения при выполнении команды.

Количество объединяемых файлов может быть более двух.

Примечание: Имя результирующего файла может совпадать с именем одного из объединяемых файлов. В этом случае данный файл будед без предупреждения перезаписан новым содержимым, представляющим собой результат объединения исходных файлов файлов.

Примечание: При выполнении команды файл <result-file> создается по заданному пути. Если в указанном месте уже существует файл с таким же именем, то после выполнения объединения файлов диаграмм он будет перезаписан создаваемым.

Примечание: Если указаны только результирующий файл <result-file> и только один подлежащий объединению файл <input-file1>, то в результате выполнения команды содержимое <input-file1> будет просто скопировано в файл <result-file>.

Пример выполнения команды merge-cfd.

Добавление диаграмм в результирующий файл выполняется последовательно, по одной. Содержимое второго объединяемого файла добавляется под рабочей областью первого файла, при этом автоматически выполняется команда “Рамка по содержимому” - новая граница рабочей области полученного файла подгоняется по размеру получившейся диаграммы. Содержимое каждого следующего файла добавляется под рабочей областью диаграммы, полученной в результате предыдущего объединения. Добавляемые в результирующую диаграмму функциональные блоки нумеруются автоматически. Создание и сохранение результирующего файла выполняется после объединения всех файлов, указанных в качестве аргументов команды merge-cfd.

Пример исходного файла диаграммы.
Результат выполнения команды merge-cfd.

Объединение диаграмм выполняется “как есть”, т.е. все содержащиеся в объединяемых диаграммах регистры, именованные сети и т.п. будут добавлены в результирующую диаграмму со своими именами и без каких-либо изменений. Возможна ситуация, когда в результате объединения на поле результирующей диаграммы будут находиться несколько одинаковых регистров записи или одинаковых именованных сетей, подключенных к выходам разных функциональных блоков, что является ошибкой и недопустимо в графическом языке CFD. После объединения файлов диаграмм рекомендуется выполнить автоматическую проверку результирующего файла с помощью команды check-cfd интерфейса командной строки, либо с помощью команды “Проверить диаграмму” интегрированной среды разработки CannyLab и в ручную устранить обнаруженные конфликты.

check-cfd

Команда предоставляет возможность автоматической проверки функциональной диаграммы на наличие ошибок.

Формат команды: clcli check-cfd <file>

Аргументы команды:

  • <file> - имя проверяемого файла диаграммы и путь к нему, т.е. расположение и название файла.

Если проверяемая диаграмма содержит ошибки, то после выполнения команды будет выведено сообщение “error”. В противном случае никаких сообщений выведено не будет.

Результат выполнения команды check-cfd: диаграмма содержит ошибки.
Результат проверки диаграмы в среде разработки CannyLab.

make-sfx

Команда предоставляет возможность автоматического создания исполняемых файлов автономной загрузки ПО в контроллер (SFX).

Формат команды: clcli make-sfx --ccx <ccx> [--cfd <cfd>] --parameters <txt> --sfx <sfx> [--no-optimization]

Параметры команды:

  • --ccx <ccx> - указание файла системного программного обеспечения (.ccx), используемого для создания SFX: --ccx - параметр команды, <ccx> - значение параметра --ccx - путь и имя файла сиcтемного ПО;
  • --cfd <cfd> - указание файла функциональной диаграммы (.cfd), используемого для создания SFX (необязательный параметр): --cfd - параметр команды, <cfd> - значение параметра --cfd - путь и имя файла функциональной диаграммы;
  • --parameters <txt> - указание файла с параметрами (.txt), используемого для создания SFX: --parameters - параметр команды, <txt> - значение параметра --parameters - путь и имя файла парметров;
  • --sfx <sfx> - указание создаваемого файла SFX (.exe): --sfx - параметр команды, <sfx> - значение параметра --sfx - путь и имя создаваемого файла;
  • --no-optimization - не использовать оптимизацию функциональной диаграммы при создании SFX (необязательный параметр).

Примечание: По умолчанию, если параметр --no-optimization не указан, при создании исполняемых файлов автономной загрузки ПО в контроллер с использованием команды make-sfx оптимизация функциональной диаграммы включена.

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

Результат выполнения команды make-sfx: успешное создание исполняемого файла.

Примечание: Используемые системное программное обеспечение (.ccx) и функциональная диаграмма (.cfd) должны принадлежать к одному и тому же типу контроллера.

Примечание: Версия файла функциональной диаграммы (.cfd) должна соответствовать версии среды разработки CannyLab, интерфейс командной строки которой используется для создания исполняемого файла.

В случае, если какие-либо параметры команды make-sfx указаны неверно или не удовлетворяют необходимым требованиям, пользователю будет выдано сообщение об ошибке, исполняемый файл создан не будет.

set-value

Команда предоставляет возможность автоматической замены значений констант или регистров в указанной функциональной диаграмме.

Формат команды: clcli set-value --src <src-file> --dst <dst-file> --label <label-txt> --value <new-value>

Параметры команды:

  • --src <src-file> - указание исходного файла функциональной диаграммы (.cfd), в котором предполагается выполнить замену значения константы или регистра: --src - параметр команды, <src-file> - значение параметра --src - путь и имя исходного файла функциональной диаграммы;
  • --dst <dst-file> - указание файла функциональной диаграммы (.cfd), в котором будут сохранены результаты замены значения константы или регистра: --dst - параметр команды, <dst-file> - значение параметра --dst - путь и имя файла результирующей функциональной диаграммы;
  • --label <label-txt> - указание элемента “Надпись”, обрамляющего константу или регистр, значение которого подлежит замене: --label - параметр команды, <label-txt> - значение параметра --label - содержимое текстового поля элемента “Надпись”;
  • --value <new-value> - новое значение заменяемого элемента (константы или регистра): --value - параметр команды, <new-value> - значение параметра --value - числовое значение, присваиваемое заменяемой константе или регистру.

Результатом выполнения команды set-value является создание файла функциональной диаграммы (.cfd) с названием, указанным в значении параметра --dst, содержащей измененное значение выбранного элемента диаграммы.

Результат выполнения команды set-value: замена исходного значения элемента “period” значением “500”.

Примечание: Имя и расположение результирующего файла может совпадать с именем и расположением исходного.

Примечание: При выполнении команды файл <dst-file> создается по заданному пути. Если в указанном месте уже существует файл с таким же именем, то после выполнения команды он будет перезаписан создаваемым.

Исходная функциональная диаграмма.
Результирующая функциональная диаграмма.

Примечание: Для успешного выполнения команды, элемент “Надпись” должен полностью обрамлять элемент диаграммы, подлежащий замене, т.е. заменяемый элемент должен полностью находиться внутри рамки элемента “Надпись”. В противном случае пользователю будет выдано сообщение об ошибке и команда выполнена не будет.

Некорректное задание заменяемого элемента: элемент не полностью находится внутри рамки надписи “period”.

Примечание: Название (содержание) элемента “Надпись”, указывающего элемент диаграммы, подлежащий замене, должно быть уникальным, т.е. не должно повторяться. В противном случае пользователю будет выдано сообщение об ошибке и команда выполнена не будет.

Некорректное задание заменяемого элемента: внутри рамки надписи “period” находится более одного элемента.

Примечание: Один элемент “Надпись” должен указывать только на один элемент диаграммы, подлежащий замене. В противном случае пользователю будет выдано сообщение об ошибке и команда выполнена не будет.

Некорректное задание заменяемого элемента: на диаграмме находится более одной надписи “period”.

Пользовательская диаграмма, одновременно, может содержать более одного элемента, подлежащего замене. В этом случае, замена нескольких значений с использованием команды set-value возможна одиночными, последовательными шагами, т.е. заменой одного элемента за одно выполнение команды, при этом количество шагов не ограничено. Для автоматизации процесса может быть использован заранее созданный командный файл (.bat) со списком последовательно выполняемых команд.

Функциональная диаграмма, содержащая два разных элемента, подлежащих замене.

СМОТРИ ТАКЖЕ