Напишите этот вопрос на support@owen.ru, пожалуйста - вас проконсультируют по настройке AFD-E для управления по интерфейсу.
Но навскидку - функцию надо выбрать WRITE_SINGLE_REGISTER.
https://owen.ru/forum/showthread.php...l=1#post402051
Последний раз редактировалось Евгений Кислов; 03.03.2023 в 16:55.
Связь со мной: telegram: @JuneSmellsLikeBlood | e-mail: e.kislov@owen.ru (личка на форуме - не подходит)
Раздел CDS V3.5 на сайте | Основные темы по CDS V3.5 на форуме: Вопросы и ответы | Визуализация | Настройка обмена с другими устройствами
Repository Archive V3.5 SP4 (необходим для СПК207/СПК1хх без Eth/ПЛК3xx)
oscat.ru | Как обратиться в техподдержку? | Как отлаживать ошибки | Отладка проектов в CODESYS V3.5 | Проблема XY | Как правильно задавать вопросы | AnyDesk
Тогда - технически это реализуемо на СПК, но потребует определенных усилий.
Описание отдельных аспектов текстом заняло бы много времени; я предлагаю обсудить это голосом.
Напишите мне в личку ваш контактный телефон (и укажите, привязан ли к нему telegram) и во сколько с вами в понедельник можно будет связаться.
Последний раз редактировалось Евгений Кислов; 03.03.2023 в 19:58.
Связь со мной: telegram: @JuneSmellsLikeBlood | e-mail: e.kislov@owen.ru (личка на форуме - не подходит)
Раздел CDS V3.5 на сайте | Основные темы по CDS V3.5 на форуме: Вопросы и ответы | Визуализация | Настройка обмена с другими устройствами
Repository Archive V3.5 SP4 (необходим для СПК207/СПК1хх без Eth/ПЛК3xx)
oscat.ru | Как обратиться в техподдержку? | Как отлаживать ошибки | Отладка проектов в CODESYS V3.5 | Проблема XY | Как правильно задавать вопросы | AnyDesk
Я писал по поводу Com-порта и до сих пор ответа нету, только Вы ответили.
с этой функцией не работает, при опросе в Owen OPC Server используется WRITE_MULTIPLE_REGISTERS и меня смущает параметр xDone, если я правильно понимаю при правильной записи должен принять TRUE. И в Owen OPC Server есть параметр включен в работу, может в коде надо еще что-то передать?
Можно и WRITE_MULTIPLE_REGISTERS использовать, но по документации - WRITE_SINGLE_REGISTER тоже подходит.
Судя по новым скриншотам - у вас блок нигде не вызывается.
Для вызова надо в строке 42 (указал ее для примера) сделать так:
Код:fbMbSerialRequest();
После этого наблюдайте за значениями выходов ФБ.
Я ведь правильно понимаю, что значение eState вы пока вручную для отладки меняете, а не пытаетесь им манипулировать где-то в коде, который не попал на скриншоты?
Последний раз редактировалось Евгений Кислов; 03.03.2023 в 21:29.
Связь со мной: telegram: @JuneSmellsLikeBlood | e-mail: e.kislov@owen.ru (личка на форуме - не подходит)
Раздел CDS V3.5 на сайте | Основные темы по CDS V3.5 на форуме: Вопросы и ответы | Визуализация | Настройка обмена с другими устройствами
Repository Archive V3.5 SP4 (необходим для СПК207/СПК1хх без Eth/ПЛК3xx)
oscat.ru | Как обратиться в техподдержку? | Как отлаживать ошибки | Отладка проектов в CODESYS V3.5 | Проблема XY | Как правильно задавать вопросы | AnyDesk
Выкладываю код, в этом виде ПЧ запускается на 1с, не у верен что правильно поставил fbMbSerialRequest() и хотелось бы понять куда правильнее его установить.
Код://Проверка привода на готовоность fbComControl1 ( xEnable := TRUE, udiComPort := 5, udiBaudrate := 9600, udiByteSize := 8, eParity := OCL.COM_PARITY.NONE, eStopBit := OCL.COM_STOPBIT.ONE ); IF fbComControl1.xActive THEN IF xKnop THEN eState := 20; END_IF IF xStop THEN eState := 40; END_IF CASE eState OF 10: // Опрос состояния AFD-E 20: // запуск AFD-E fbMbSerialRequest(); wCmdWord := 22; fbMbSerialRequest.xExecute := TRUE; fbMbSerialRequest.hCom := fbComControl1.hCom; fbMbSerialRequest.xIsAsciiMode := FALSE; fbMbSerialRequest.usiSlaveId := 15; //адрес слейва fbMbSerialRequest.eFuncCode := OCL.MB_FC.WRITE_SINGLE_REGISTER ; //функция fbMbSerialRequest.uiDataAddr := 4864; // адрес начального запроса fbMbSerialRequest.uiDataCount := 1; //число регистров fbMbSerialRequest.pData := ADR(wCmdWord); fbMbSerialRequest.szSize := SIZEOF(wCmdWord); //fbMbSerialRequest.xError := xError; //fbMbSerialRequest.eError := wError; xLampRab := TRUE; xLampOff := FALSE; 30: // Реверс wCmdWord := 54; fbMbSerialRequest.usiSlaveId := 15; //адрес слейва fbMbSerialRequest.eFuncCode := OCL.MB_FC.WRITE_SINGLE_COIL; //функция fbMbSerialRequest.uiDataAddr := 4864; // адрес начального запроса fbMbSerialRequest.uiDataCount := 1; //число регистров fbMbSerialRequest.pData := ADR(wCmdWord); fbMbSerialRequest.szSize := SIZEOF(wCmdWord); xLampRab := TRUE; xLampOff := FALSE; 40: // Стоп wCmdWord := 166; fbMbSerialRequest.usiSlaveId := 15; //адрес слейва fbMbSerialRequest.eFuncCode := OCL.MB_FC.WRITE_SINGLE_COIL; //функция fbMbSerialRequest.uiDataAddr := 4864; // адрес начального запроса fbMbSerialRequest.uiDataCount := 1; //число регистров fbMbSerialRequest.pData := ADR(wCmdWord); fbMbSerialRequest.szSize := SIZEOF(wCmdWord); xLampRab := FALSE; xLampOff := TRUE; IF fbMbSerialRequest.xDone OR fbMbSerialRequest.xError THEN //xCommand := FALSE; END_IF END_CASE ELSE ; END_IF
Последний раз редактировалось sco-scorpion; 03.03.2023 в 22:12.
Начните с этого:
Код:VAR ... fbKnopTrig: R_TRIG; END_VAR // Проверка привода на готовность fbComControl1 ( xEnable := TRUE, udiComPort := 5, udiBaudrate := 9600, udiByteSize := 8, eParity := OCL.COM_PARITY.NONE, eStopBit := OCL.COM_STOPBIT.ONE ); IF fbComControl1.xActive THEN fbKnopTrig(CLK := xKnop); IF fbKnopTrig.Q THEN eState := 20; END_IF CASE eState OF 0: // ожидание команды 10: // Опрос состояния AFD-E 20: // запуск AFD-E wCmdWord := 22; fbMbSerialRequest.xExecute := TRUE; fbMbSerialRequest.hCom := fbComControl1.hCom; fbMbSerialRequest.xIsAsciiMode := FALSE; fbMbSerialRequest.usiSlaveId := 15; // адрес слейва fbMbSerialRequest.eFuncCode := OCL.MB_FC.WRITE_SINGLE_REGISTER; // функция fbMbSerialRequest.uiDataAddr := 4864; // адрес начального запроса fbMbSerialRequest.uiDataCount := 1; // число регистров fbMbSerialRequest.pData := ADR(wCmdWord); fbMbSerialRequest.szSize := SIZEOF(wCmdWord); fbMbSerialRequest(); // fbMbSerialRequest.xError := xError; // fbMbSerialRequest.eError := wError; IF fbMbSerialRequest.xDone OR fbMbSerialRequest.xError THEN fbMbSerialRequest(xExecute := FALSE); eState := 0; END_IF END_CASE END_IF
Последний раз редактировалось Евгений Кислов; 03.03.2023 в 22:24.
Связь со мной: telegram: @JuneSmellsLikeBlood | e-mail: e.kislov@owen.ru (личка на форуме - не подходит)
Раздел CDS V3.5 на сайте | Основные темы по CDS V3.5 на форуме: Вопросы и ответы | Визуализация | Настройка обмена с другими устройствами
Repository Archive V3.5 SP4 (необходим для СПК207/СПК1хх без Eth/ПЛК3xx)
oscat.ru | Как обратиться в техподдержку? | Как отлаживать ошибки | Отладка проектов в CODESYS V3.5 | Проблема XY | Как правильно задавать вопросы | AnyDesk
Спасибо дело сдвинулось с мертвой точки)
С Вашим кодом двигатель запускается на 1с, я правильно понимаю что бы запуск был постоянным надо постоянно отправлять запрос?
так будет правильно или есть более правильное написание кода с отправкой команды?Код:IF fbMbSerialRequest.xDone OR fbMbSerialRequest.xError THEN fbMbSerialRequest(xExecute := FALSE); eState := 20; END_IF
Это должны специалисты по ПЧВ из нашей техподдержки пояснить. По моим воспоминаниям - при корректной настройке ПЧВ должно быть достаточно однократной отправки команды.С Вашим кодом двигатель запускается на 1с, я правильно понимаю что бы запуск был постоянным надо постоянно отправлять запрос?
Связь со мной: telegram: @JuneSmellsLikeBlood | e-mail: e.kislov@owen.ru (личка на форуме - не подходит)
Раздел CDS V3.5 на сайте | Основные темы по CDS V3.5 на форуме: Вопросы и ответы | Визуализация | Настройка обмена с другими устройствами
Repository Archive V3.5 SP4 (необходим для СПК207/СПК1хх без Eth/ПЛК3xx)
oscat.ru | Как обратиться в техподдержку? | Как отлаживать ошибки | Отладка проектов в CODESYS V3.5 | Проблема XY | Как правильно задавать вопросы | AnyDesk