Сам же и отвечу. Уже 4 дня всё работает нормально.
Проверил - работает Status :=255; пишет переменные в файл.
Сразу чтение Status ещё 255,
и сразу второй раз чтение Status уже =1.
Фактические это флаг выполнения операции записи переменных в файл.
Вид для печати
ээээээ даже не знаю как сказать
вы понимаете, то что прочитали? что вам вчера написали?
или вы принципиально не читаете ничего, а занимаетесь попрошайничеством на форумах? чтобы за вас всё сделали, разжевали и в рот положили?
Вложение 66547
В Левой колонке где PLC_PRG, нажмите правую кнопку мыши Добавить объект и выберете функц. блок, дайте ему имя и выберете язык CFC, потом ОК.
или Воспользуйтесь командой Проект/ Объект / Добавить и выберете функц. блок
Для вызова блока, надо на поле поставить элемент и дать ему имя вашего блока, а так же сверху дать ему имя с номером, например 1,Вложение 66549
это будет первый экземпляр вашего блока.
Знатоки подскажите
Использую овеновскую библиотеку OwenCommunication для обмена с девайсом по RS485
ОТслеживая результаты обмена обратил внимание что периодически возникают ошибки CRC (RESPONSE_CRC_FAIL 60 Ошибка CRC ) . Других ошибок не возникает практически никогда.
Я так понимаю что целостность данных но каких? Вроде у меня все данные корректные приходят.
Но стандарт MODBUS сам должен обрабатывать ошибку CRC (повторной передачей)
Что это за ошибка и как ее правильно интерпретировать?
Блок вызывается примерно с такими входными параметрами:
fbSerialRequest
(
xExecute := TRUE,
hCom := hCom,
tTimeout := T#100MS,
usiRetry := 3,
xIsAsciiMode:= FALSE,
usiSlaveId := fbAxisDrives[iAxisIndex].usiSlaveId,
eFuncCode := fbAxisDrives[iAxisIndex].stStack.eFuncCode,
uiDataAddr:= fbAxisDrives[iAxisIndex].stStack.uiDataAddr,
uiDataCount := fbAxisDrives[iAxisIndex].stStack.uiDataCount,
pData := fbAxisDrives[iAxisIndex].stStack.pData,
szSize := fbAxisDrives[iAxisIndex].stStack.szSize
);
https://owen.ru/forum/showthread.php...l=1#post403667 это не помогает? Свежее вроде
Вам тож же спасибо, я читал , но там нет примера как показал kondor3000, ему ОГРОМНОЕ СПАСИБО, то что показали вы я это делал даже без инструкции, но у меня почемуто не получились входы выходы в функциональном блоке ( который создал я)!
Зачем тратить свое время в данной ленте и гнобить новичков? (можете не отвечать)! )
Да, у меня стоит время цикла 5 мс. И при таком времени цикла у меня период на чтение/блока регистров 35-40 мс. Эта ошибка в основном возникает только при чтении READ ONLY регистров (что в общем-то не очень критично)
Я попробовал поставить 10 мс. Сразу время одного чтения/записи возросло до 70, и ошибки не исчезли. При 20 мс. вообще начинает глючить прога, слишком медленно приходят данные.
Сорян
блин
Теперь создайте еще три объекта. Воспользуйтесь командой ‘Проект’ ‘Объект - Добавить’ ("Project" "Object Add") в системном или в контекстном (нажмите правую кнопку мыши в Организаторе
объектов) меню. Создайте: программу на языке Sequential Function Chart (SFC) с именем
SEQUENCE, функциональный блок на языке Function Block Diagram (FBD) с именем
TRAFFICSIGNAL и еще один аналогичный блок - WAIT, который мы будем описывать на языке
Список Инструкции (IL).
в документации приведено ДВА (ДВА!!!!) примера создания СВОИХ блоков, на разных языках
даны картинки
Вложение 66567
и чем вот эта картинка принципиально отличается от языка CFC?
Вложение 66568
вам подсказывают - научиться думать и действовать самостоятельно, а не пытаться всё время списать.
Когда-то доброго самаритянина Кондора не окажется рядом, и что вы будете делать?
удачи