извиняюсь, такой вот детский вопрос:
При использовании sms.lib
sPhone_in-номер как правильно пишется(с +7, с 8 или без них)
Text_or_PDU- эта переменная для чего?
Какой номер у RS232 на плк 100?
Вид для печати
извиняюсь, такой вот детский вопрос:
При использовании sms.lib
sPhone_in-номер как правильно пишется(с +7, с 8 или без них)
Text_or_PDU- эта переменная для чего?
Какой номер у RS232 на плк 100?
где-то тут было нарытоЦитата:
ПЛК100,150,154
COM0 – RS485, COM1 – RS232, COM2 – Не исп., COM3 - Не исп., COM4 – RS232-Debug
ПЛК110
COM0 – RS485-1, COM1 – RS232, COM2 – RS485-2, COM3 - Не исп.,COM4 – RS232-Debug
ПЛК63
COM0 – RS485, COM1 – RS232, COM2 – Не исп., COM3 - Не исп., COM4 – RS232-Debug
Я вот роюсь в конфигурациях, нашел в файле hardware.cfg, который находится в папке IOModules таргет-файлов следующее:
Немного отличается от того, что ты привел.Код:[Module.DEBUG_USART]
Name=Debug RS-232
;rus_name=Отладочный порт RS-232
Id=200
[Module.COM1_USART]
;rus_name=Порт RS-485
Name=RS-485-1
Id=201
[Module.COM2_USART]
Name=RS-232
;rus_name=Порт RS-232
Id=202
[Module.COM3_USART]
Name=RS-485-2
Id=203
[Module.COM4_USART]
Name=Port COM4
Id=204
А попутно спрошу свое: смотрю в ПЛК-браузере, там пишет, что хочет таргет 2.05. А где в таргет-файлах узнать, какая у них версия? Или как вообще узнать, что таргет подходит моему экземпляру ПЛК?
Почему вопрос: пишет, собака, что не инициализированы модули. Почему - не пойму. Сообщение прилагаю.
Сейчас вроде до ума доведена вот эта библиотека SmsOwenLib.zip
Краткая инструкция по номерам к ней вот: http://www.owen.ru/forum/showpost.ph...78&postcount=1
По поводу текст или ПДУ, это формат отправки сообщения, либо обычным текстом либо в кодированном виде
Так я чего.Я не чего.Вот :confused: :
http://www.owen.ru/forum/showthread....EE%F0%F2%EE%E2
capzap, Валенок
Спасибо!
Собсно, вопрос остался. Отзовитесь, плз, кто знает.
Еще один вопрос по модулю статистики. В описании конфигурирования ПЛК написано, что параметр PLC_CYCLE_TIME показывает реальный цикл в сотнях микросекунд. Значит ли это, что число 5000 дает
5000 * 100 мкс = 500000 мкс = 500 мс ?
Если да, то совершенно не могу понять вот такую картину
Вложение 7374
И это в работающем ПЛК, который, вроде бы, вполне нормально отрабатывает события. То есть, его цикл, по самым щедрым прикидкам, не более 30 мс. А то, что мы видим в отладке (5320) КАГБЭ намекает на цикл в полсекунды.
Что я не так понимаю?
Спасибо!
Да уж. Полсекунды в глаза.
1.Cчитали типа в dword, а пихнули в ворд. Но тогда цикл типа 70ms
2.Цикл действительно полсекунды. Это легко проверяется.
3.Фотомонтаж
4.???
Я привел скриншот с работающей КДС, окно - Конфигурация ПЛК. Там переменные я не считаю и не преобразовую. Это в модуле статистики делает сам ПЛК. Тогда какие могут быть ошибки с типами?
Я смотрю логическим анализатором обмен между ПЛК и АЦП, а также дискретные выходы ПЛК. Видно, что время реакции - десятки миллисекунд (могу списать на реле, хотя удивлен). Но уж никак не полсекунды.
Вас тут подурачить, да.
Вот и я говорю: ???
Кста, твоя библиотека бросает запросы с какой частотой? Сейчас рассмотрел на ЛА, команды идут с периодом около 30 мс. Скрин обмена прилагаю.
Вложение 7375
1.Ну тут только авторы могут объяснить механизм расчета. А вдруг у них база в мкс,а счетчик в word ?
2.Проверяем реальный цикл :
цикл:=time()-p;
p:=time();
3.))
4.Может какая путаница в таржетах ?
закоментируйте все блоки в основной программе, а потом включайте последовательно и соответственно следите за статистикой, если в программе дело время вырастет на каком нбудь фб, если в конфигурации, таргетах и т.п. значит на другом плк попробовать надо
ЗЫ как то странно давно уже 05 версией ни кто не пользуется
Это и пугает.
У меня на диске С, столь навязчиво используемом авторами КДС, записаны и обычные Targets, и какие-то NEW Targets. Не помню, откуда их взял. И - простой вопрос: как же узнать, какие таргеты, какая версия?
А на вопрос о стандартной, задокументированной (как утверждает Андрей Николаев - вполне чудесно задокументированной) переменной PLC_CYCLE_TIME можно все же получить ответ от представителей ОВЕНа? Был бы очень признателен!
А тут с флеш работаем ?
Здравствуй, дорогой Спасатель! Ждал, ждал. Рад читать!
Дык, нет там цикла 500 мс! Это я вижу из записываемых логическим анализатором данных. Вопрос - почему ПЛК пишет, что у него такой дикий цикл?
И мы тут с Валенком подозреваем таргеты, да. Посмотри, плз, мой вопрос об определении версии таргет-файлов!
ПЛК куплен у СВ-Альтеры 2-3 недели назад...
находите и открываете файл hardware.cfg, в немдля сотого, для 63Цитата:
;Version 2.11
;Recommended for versions: 2.14
и для 160Цитата:
;version 2.0
такие строчкиЦитата:
;Version 2.10
;Recommended for versions: 2.10
Не мучайтесь прошейте плк, после обязательно удалите таргеты и поставте по новой, после должно пойти без непоняток
Я же его смотрел! Но искал другое - модуль 200 :)
ОК, сделал ревизию тех 3-х таргет-файлов, что у меня есть. Один набор - 2.05, второй и третий - 2.10.
Страшновато... Но не только это. Дело в том, что при смене тагрет-файла грохается конфигурация ПЛК. Получается, мне нужно:
- скачать последние таргет-файлы 2.11
- скачать прошивку ПЛК 2.14 и залить ее
- в проекте выбрать новый тагрет-файл - и согласиться с немецким предупреждением о том, что моя конфигурация накроется медным тазиком
- набрать ручками конфигурацию по-новой. Теперь у меня, по сути, будет новая версия проекта, совершенно не применимая к старым ПЛК. Так?
Ну, вроде так. Не напутал?
А как быть с ПЛК, которые уже уехали и работают... Ладно, если нужно - буду перепрошивать.
основательно подготовтесь, скрины сделайте конфигурации, под запись её задиктуйте стенографистке, экспорт проекта сделайте, чтоб при пропадании было с чего восстанавливать :)
Хотя если проект сохранен то почему конфигурация должна слететь, Вы же не меняете целевую платформу. Я когда открываю чужие проекты без разницы какой давности, у меня все на месте в конфигурации
А эта циферка (5320) на что-то влияет ?
А про ручками перенабирать - это да. Так понял слейв длинный ?
Мля... А я уже перепрошил ПЛК (хорошо сделана продедура, ничьо читать вообще не надо!) и запустил установку нвых таргетов.
Испугал! Ну вот, открыл старый проект, не меняя пока тагрет-файла - конфигурация видна. Ща ее действительно тщательно обфотографирую как порнозвезду, а то ведь действительно, чем черт не шутит...
Ну, щас схожу заберу доцю со школы, буду проверять. Отпишусь.
Спасибо!
2 Валенок: Видишь ли, начались траблики с сообщением об неинициализированном модуле. Еще барахлил ПЛК. В результате я начал интересоваться работоспособностью текущего таргета. А сама цифирька - да ладно, что она мне. Так, хотелось понимать...
Но есть вторая надежда: говорили, что в каком-то модуле Конфигуратора можно бороться с батарейкой, чтобы она не мешала перестартовывать быстро. Тогда я не стал возиться (тупо выпаиваем батарейки), ибо ручками перенаббирать Конфигурацию действительно не в кайф. А теперь вернусь к вопросу.
Ну-с, что имеем:
1) ПЛК перепрошил на 2.14, таргеты поставил 2.11. Почему-то переписывать Конфигурацию в проекте не пришлось (что не так, Валенок?)
2) Прога в ПЛК грузится, сообщение, с которого все начиналось, иногда появляется
Вложение 7377
после чего ПЛК отваливается от КДС
А иногда не появляется. И ПЛК работает.
Все тот же вопрос не дает спать ночами: какого?
3) Модуль статистики, на который у меня были надежды (здесь мне советовали его использовать, чтобы увидеть Power Status и резко отрубиться при выключении питания), теперь вообще перестал работать. То есть, в Конфигурации есть этот модуль, но все его переменные не живые.
Прилагаю картинку, на которой видно и неработающий модуль статистики, и часть кода, в которой самостоятельно вычисляю время цикла по SysLibTime
Вложение 7378
Как видим, реальное время цикла теперь - порядка 13 мс. Я говорю с прижимом теперь, потому что обмен по Модбасу, который раньше (прошивка 2.05) имел период 30 мс, теперь внезапно стал происходить с периодом 50 мс. "Хорошенькое дело, она меня покусала"... Новейшая прошивка похуже, или у меня руки не оттуда растут?
теперь попробуйте создать новый пустой проект, залейте его в плк и посмотрите заработает ли модуль статистики, если да, то можно попробовать импортировать предыдущий проект, если не пойдет, значит судьба Вам переписать конфиг с нуля :)
ну и, заработал?
Да! И как это понимать? Почему мне теперь набирать ручками конфигруацию? Я-то наберу, но понять же хочицца!
Кста, счетчик длительности циклов в модуле статистики таки да не работает! Измеряю время цикла через библиотеку - на уровне 1 мс, а статистика говорит какие-то 3-4 единицы...
Пруф:
Вложение 7379
ДОБАВЛЕНО: Работает, работает... Там получается, что ПЛК искусственно увеличивает цикл, т.к. я оставил время MinCycleLength = 1 ms. В общем-то, считается все не очень точно, но тут уже трудно проверить: теоретически должно быть так, что сумма длительности цикла + запас (Free Processor Resourse) равны MinCycleLength. Оно похоже, но равенство трудно отловить...
Да, это пустяки уже. Главное, что же за таинственная связь между сменой таргета и преренабором конфигурации...
ДОБАВЛЕНО (со смущенным видом): грохнул старый модуль статистики, заработал новый. Теперь видно, что со статистикой у нас все хорошо:
Вложение 7380
Что ж, если неким таинственным образом и сообщение об ошибке рассосется, то можно будет радоваться новой прошивке ПЛК.
Могу только предположить.
Я каждый раз перед записью нового проекта даю команду очистить все, чтобы все концы подчистить в программе и в ПЛК.
Не сменой таргета, а либо сменой целевой платформы, т.е. использовать проект в плк150 написанный для плк100, либо после изменения прошивки, может возникнуть ситуация, что определенные модули конфигурации изменили свое расположение (порядок следования) в области памяти и соответственно обращение к ним из старого таргета будет не возможно, поэтому конфигурация может "рассыпаться"
Спасибо за ответы, уважаемые коллеги!
Что ж, замысловатое немецкое ругательство время от времени появляется. Исследовать это явление помогут 3 новых ПЛК, которые сегодня буду пробовать. Очень, очень, на мое ИМХО, было бы здорово увидеть некий связный рассказ для танкистов о том, например, что нужно последовательно проделать, чтобы
- в имеющемся старом проекте перейти с одного ПДК на другой (да те же 100 и 150 - братья по разуму)
или
- сменить прошивку ПЛК и привязать это к существующему проекту
или
- загружить от производителя новые таргеты и сделать правильную и безболезненную миграцию от старых - чтобы и поддержка вышедших из наших рук ПЛК не пострадала, и чтобы с новыми ПЛК развивать проект далее...
Возможно, мечтания мои специфичны и не очень характерны для большинства присутствующих. Скорее всего, проекты на ПЛК идуд с печатью уникальности и смена прошивки ПЛК - это просто новый проект, новые таргеты и прочее, мало связанное с предыдущими проектами. У меня же кагбэ серийная продукция, идет один проект, который развивается, правится, но по сути - это одна прога, прошитая в десятки ПЛК. И здесь вопросы аккуратного сопровождения старых экземпляров, бесконфликтного перехода на новые прошивки с сохранением проекта по сути - очень важны. Ну, поэтому и пытаюсь объять, так сказать. Сам бы написал такие пособия, но мозгов пока не хватает.
А у ОВЕНа ведь есть такой талантище, как Кирилл!
Было бы просто - сам бы написал :)
В том-то и дело, коллега! Смотри, мы здесь только говорим об этом - и то уже все непросто. А где-то в деревне киев сидит пацанчик и пробует сделать это - со всеми своими нюансами, на которые ты намекаешь! Разве это не повод для гуру, отличающих тагрет файл от таргет процессора, упорядочить свой опыт и выдать такое, что сгодится в 99% случаев?
Ладно, флужу. Извините.
Добрый день!
Не могу сделать так,чтобы в ответ на системное событие вызывался программный блок. Может, здесь есть какие-то тонкости? Мне бы примерчик какой-нибудь посмотреть.. Нет ни у кого?
Доброго дня!
Хочу на контроллере реализовать slave-режим modbus rtu, использую функцию MB_RTU_RX(port, buf, ptr, frame): жду пока результат не будет RX_COMPL. При этом buf[ptr] - первый байт CRC (предпоследний в пакете).
Получается, мне надо вручную просканить приемный буфер на предмет номера функции, адреса и прочих параметров запроса?
Вопрос - это так и реализуется, или надо делать иначе?
Да, конечно. И событие по сбросу выполняется. А по старту — нет, сколько раз ни запускала.
так это еще проще, в библиотеке оскат можно найти блоки, где контролируется первый цикл программы именно на подобных примерах я и давай предыдущий совет