Итак, в настоящее время я пытаюсь подобрать этот код, который стажер оставил для этого проекта. У меня есть пакетный файл, который запускается при нажатии и выполняет сценарий powershell, который преобразует сгенерированный файл CSV из собранных данных в файл Excel. Я пытаюсь заставить этот процесс происходить автоматически при нажатии кнопки в HMI, но не знаю, как вызвать пакетный файл в Codesys.
Я пробовал вызывать пакетный файл в разных местах моего кода. Ничто не запустит его при нажатии кнопки.
FUNCTION ScriptExecute
VAR
szStdOout : STRING(100);
dutResult : sysfile.RTS_IEC_RESULT;
szCommand: STRING;
END_VAR
szCommand := '/home/cds-apps/PlcLogic/data/ psExecuter.bat';
SysProcess.SysProcessExecuteCommand2(pszCommand:=szCommand, pszStdOut:=szStdOout, udiStdOutLen:= SIZEOF(szStdOout), pResult := ADR(dutResult));
С этим кодом не возникает никаких ошибок, я просто хочу найти способ автоматического запуска командного файла, когда пользователь нажимает определенную кнопку. В настоящее время пользователю придется вручную зайти в проводник и запустить пакетный файл самостоятельно.
FUNCTION ScriptExecute
должен вернуть ошибку. Должно бытьFUNCTION ScriptExecute : BOOL
или что-то в этом роде. На самом деле это должно создать ошибку во время компиляции. - person Sergey Romanov   schedule 01.09.2019c:\windows\system32
или, что гораздо лучше, добавьте/home/cds-apps/PlcLogic/data/
в PATH, а затем используйте толькоszCommand := 'psExecuter.bat';
, также попробуйте запустить эту команду в терминале и убедитесь, что она работает в терминале. - person Sergey Romanov   schedule 01.09.2019