У вас работало в эмуляторе или реально работал опрос на реальной панели с реальными модулями ввода-вывода?
Вид для печати
Вы же знаете, что русские из поезда секретный самолет могут сделать с помощью напильника.))
А так в роде проблема, по-моему, была в том, что в свежей прошивке в скрипте автозагрузчика не был прописан корректно запуск программки обслуживающей com порты. А может и саму программку забыли в дистрибутив положить или конфигурация была не правильная.
Сижу конфигурацию конфигурирую у мв110-8а в кдс.
Смотрю в документацию модуля, номера регистров указаны у первого и у последнего, у промежуточных естественно считать нужно.
Считать мы привыкли в десятичной системе, вот посчитал все, записал и сижу калькулятор виндовый мучаю.... дек хекс дек хекс......
Интересно какнить это дело можно более рационально сделать?
Не совсем по теме......
Господа, а есть еще варианты помимо примера ModbusRTU.pdf как перевернуть байты с мв110-8а?
А то хочется с модуля считывать еще и статус измерения, а переменных в модуле не может быть больше 10, а нужно 16 тогда организовывать.
вроде как массивом можно считать регистры каналов, но вот как из массива потом выдернуть значение самого параметра в реал, затруднения вызывает.
Если коротко, сейчас вообще наверное фигню спрошу, возможно ли из двух переменных ворд собрать одну переменную реал?
Класный ответ, емкий и содержательный!
Можно, пример изучайте:
Вложение 9935
что то не понял, что могло произойти..... в регистрах все единицы, кроме 8 канала, там нули все...
вчера было нормально
модули 16р и 16д работают нормально
Да там программы то еще толком нету, пара тройка строчек.
В глобал вариэйбл вот это вписал:
MV110_8A_In_1_p:POINTER TO ARRAY [0..5] OF WORD;
Result_p:POINTER TO ARRAY[0..1] OF WORD;
Result_1,Result_2:WORD;
Result:REAL;
В ПЛС_ПРГ вот это добавил...
Result_p:=ADR(Result);
MV110_8A_In_1_p:=ADR(MV110_8A_In_1);
Result_p^[0]:=MV110_8A_In_1_p^[5];
Result_p^[1]:=MV110_8A_In_1_p^[4];
И все, и вылезли единицы........
в ПЛС_ПРГ закоментировал строчки...... в регистрах 110_8А так единицы и остались...
создал новый проект, от туда регистры нормально читаются
Точно ведь что то где то пишет, переменные отвязываю, нормальные данные наблюдаю..... только вот где что там пишет......
Какой то глюк. Отвязал от канала переменную.
Появились нормальные данные.
Создал новую переменную, подвязал к каналу, опять единицы......
кошмар, что за система..... реально начинаю жалеть уже...............
создал девственно чистый проект..........................
та же хрень, могу выразиться по другому, только тут так нельзя выражаться..............
еще момент, пытался открыть пример, архив проекта по чтению переменных с 8а модуля, кдс ругнулся что проект сделан в кдс35 сп3 патч 5, а у меня более ранняя версия и все....
попробую переустановить кдс.
Такая шляпа под соусом, не ожидал от немцев такой системы.
в общем снес кдс, весь какой был на машине.
поставил заново 35сп3п2, поставил репозиторий библиотек с сайта.
та же хрень, в регистрах у модуля 110-8а единицы, убираем привязку к переменной, нормальные данные, ставим переменную обратно, опять еденицы, причем переменная новая, т.е. писаться в нее ни где ничего не может в программе, во всяком случае с моего ведома.
Вот такая вот фигня, бывает порою не до смеха, писал писал проект, потом на тебе.................. и переделывай с бубном в руках.
capzap и kholonkin прекратите эту ругонь. Еще одно подобное высказывание от кого либо, перекрою доступ к форуму на неделю вам двоим.
Давайте соблюдать рамки приличия и уважение друг к другу.
К сожалению не все являются профессионалами в области программирования.
kholonkin , жду Ваш проект. И проблема не в том одна или 2 переменных в вашем проекте. А в том как Вы с ними работаете.
Пока не добрался до компа.
Александр, в ответе 54 скрин от абсолютно пустого проекта. Там одна переменная. ПЛС ПРГ пустое. Там нет ничего. Кроме модбаском модбасмастер и модбасслев с двумя каналами. К одному из них соотнесена перменная.
1) Ругаться нельзя даже на скриншетах и даже на английском языке.
2) Какой тип у вашей ругательной переменной и где она объявлена?
Я кокраз дома имею на руках и СПК110 и модуль МВ110-8А.
В течении субботы посмотрю.
А вообще я выложил пример, где полный опрос данных с 8А происходит и естественно таи также используется привязка к переменным.
И проблем ни каких не надблюдал.
Есть у меня подозрение, что вы все указатели туда пытаетесь прикрутить.
Объявите в PLC_PRG обычный массив байт. И привяжите его к модбас.
Но только пока указатели не трогайте.
у меня спк207, могу предположить что на спк110 может заработать.
вот сегодня скидал проект, тоже самое....
уже все в архиве со скрин шотами, потому пардон, ругательная переменная таже:)
гарантировано ни кто бы не смог ничего записать в переменную, если бы она лежала не в глобальных переменных, а в ПОУ PLC_PRG
немешало бы время цикла увеличить до десяти, как пишет Александр, а я бы на 2хх до 20мс бы предложил минимум
и взять за правило нужно включать "злую собаку", очень тяжко выходить будет если случится зацикливание
ну и так для подстраховки в главном ПОУ все же минимальный символ ; поставить требуется
это проект пример, что в пустом глюк.
в рабочем маин таск у меня 100 мс стоит.
про собаку согласен, нужна.
вот опять ответили на несущественные мелочи, на главное предложение почему умолчали, работает или нет?
1) Предположение сработало. В СПК110 обмен работает и переменные корректно выводятся, но правда все устройства обновить пришлось до более новых
2) CDS 3,5 позволяет использовать не только глобальные переменные, но и переменные проекта.
Я вообще не любитель глобальных переменных, т.к. они доступны из любого места программы.
Но в данном случае это ни как не влияет на работу проекта
3) С циклом согласен на СПК2хх его надо до 15-20 мс поднять.
4) ; в CDS теперь не требуется для создания пустого POU
5) Сторожевой таймер пока погоды не сделает
Теперь, что я заметил.
1) СПК у вас с очень древним Target файлом - 3,4,0,10 и видимо и с очень древней прошивкой
В связи с этим я бы вам порекомендовал прошиться на более новую прошивку:
http://www.owen.ru/catalog/32050189
ВНИМАНИЕ! как выяснилось на сайте я выложил не корректные таргеты для новой прошивки. В понедельник перевыложу.
А вообще на этой неделе будет новая прошивка с ядром 3,5,3,40 для СПК1хх. Потом такую же прошивку сделаем для СПК2хх.
После этого проекты настраивать будет полегче. Думаю для СПК2хх прошивка выйдет не раньше чем через 1-2 недели, т.к. надо время на ее испытания.
2) Даже если пока отложить прошивку на задний план, посмотрим на девайсы, которые в вашем проекте:
SPC2xx_x.03.x-cs-web версия 3,4,0,10
Modbus_COM версия 3,4,0,0
Modbus_Master_COM_Port версия 3,4,0,0
Modbus_Slave_COM_Port версия 3,5,2,0
ПОЧЕМУ?
В трех одинаковых темах на форуме уже неоднократно сказано, что версии девайсов должны быть ниже или равны версии таргета устройства.
Я не поленился, даже сделал подробную инструкцию.
http://www.owen.ru/forum/showthread....l=1#post117771
возможно это исправит ситуацию.
1. Таргет этот был в КДС после установки, я его туда не ставил. До этого были потуги с таргетом 3.5.. дальше не помню цифры, у меня ничего не вышло, почему, уже наверное и не выяснить. Прошивка в моих панелях 2531. Вроде как самая свежая.
Ковыряться/экспериментировать с разными прошивками и таргетами на данный момент нет времени, я его очень много потерял, у меня этот этап, на котором я сейчас нахожусь должен был быть дней 10 назад крайний срок.
2. По поводу девайсов.
Используя таргет 3.5 получал множественные ошибки компиляции.... потом ушел на таргет 3.4 и версии устройств 3.4.0.0, оно откомпилировалось и заработало.
После чего возник вопрос с получением корректных значений. Структура данных в примере, который подсказали, не совпадала с тем что я имел на Modbus_Slave_COM_Port версия 3,4,0,0.
Примеры и хелп, такое ощущение, что пишут программисты для программистов, поэтому если ты не в теме, то понять сам принцип работы с ходу не выходит.
После чего была предпринята попытка изменить версию Modbus_Slave_COM_Port с 3.4.0.0 на 3.5.2.0. структура данных в ней соответствовала примеру. Данная комбинация устройств откомпилировалась и заработала.
Затем в дебрях сети надыбал пдфник где описывалась работа указателей, форма подачи оказалась мне понятна. После чего было опробовано с одной переменной, значение вывел на панель удачно и как надо. Потом прописал все переменные всем каналам модуля. ну и собрался двигаться дальше..... как вывалились эти единицы....... потом манипуляции с удаление установкой КДС.......
На данный момент остановился на комбинации устройств версии 3.4.0.0, таргет 3.4.
Т.к. разобрался как там вертеть байты в модбасе, то мне фиолетово какая там структура данных переменных в Modbus_Slave_COM_Port.
На ней сейчас и двигаюсь дальше.
Мне вот интересно, после спк207 на какие грабли я могу наступить с спк107.....
Скажем так, у меня подобных проблем не было ни разу. Думаю все сложности из за того, что надо было немного потратить времени и разобраться с теаргетами и прошивками.
Я Вам настоятельно рекомендую все же установить нормальный Target и работать с ним. Target файлы в понедельник я перевыложу.
СПК207-022.03.00-CS-WEB
прошивка OWEN-20120817-2531
таргет 3.5.0.40
СПК207 - мастер, ТРМ212 - слэйв с номером 1.
Сделал по примеру из ModBus_VS_CODESYS_V35.pdf.
Ошибка на слэйве с сообщением "Шина не запущена. Данные значения, возможно, неактуальны".
Панель соединяется через COM2 по RS485 с ТРМ212 используя Modbus RTU (9600, 8N2).
С компьютера через переходник RS232/485 опросить ТРМ212 с теми же установками получается без проблем.
Уже и с номерами портов и прочими параметрами экспериментировал, но без результата. Как быть?
1) Линию прозвонил. Витая пара около 1 м на столе. Норма.
2) Пробовал и с резистором 100 Ом и 120 Ом и без...
3) Увеличил таймаут слэйва до 5000, у мастера таймаут отклика до 5000, время между фреймами до 100.
Сменил подключение на порт COM3 с изменением в программе на "4" в номере порта.
Индикатор на панели моргает, а по истечении таймаута в слэйве на вкладке "Соотнесение входов/выходов" появляется "Шина не запущена. Данные значения, возможно, неактуальны".
На ТРМ212 индикатор "RS" не загорается. С компьютера опрос получается, а с СПК207 - нет, хотя индикатор отправки мигает и порты настроены как RS485.
С чем еще стоит поэкспериментировать?
Здравствуйте,Grey.
Вчера взял старый прибор, запамятовав, что у него нет протокола Modbus. Потому ситуация и повторилась.
Сегодня снял новый прибор со склада, переключил на Modbus RTU , перекинул питание и всё прекрасно заработало с Вашим проектом без каких либо изменений.
Какого года у Вас ТРМ212, перекидывали ли Вы питание на приборе после смены протокола?( он не перейдёт на модбас , если этого не сделать).
Вы можете снять лог опроса? Вчера тоже самое было, СПК стучался в дверь, но ответа так и не получил.И с грустью сообщал, что шина того...
Собственно видео которое подготовил Артем:
http://www.youtube.com/watch?v=tkXzTxf1HmE
Иду по стопам Кholonkinа. Все те же 501 ошибки компиляции. Делаю по все по руководству "Modbus_VS_Codesys_3.5".
Таргет СПК207 3.5.0.40, прошивка2.531.
Версия таргета СОМ-порта - 3.4.0.0
Модбас мастер - 3.4.1.2.
Модбас Слэйв - 3.4.0.0Вложение 10248
Здравствуйте , Drahtor .
Укажите пожалуйста полностью версию кодесис, что вы используете
можете выложить скриншоты ошибок? загрузил ваш проект, с обновлением таргета до WEB версии панели и без проблем загрузился
У меня СПК207-03-00-CS.
Скриншоты:
Вложение 10250Вложение 10251Вложение 10252Вложение 10253Вложение 10254Вложение 10249Вложение 10249
В случае необходимости, могу выложить скрины всех ошибок
У меня Ваш проект нормально открылся и компилируется.
Рекомендую сделать следующее:
1) Из проекта удалите все устройства
2) Добавьте устройства заново, но следующих версий:
Версия таргета СОМ-порта - 3.4.0.0
Модбас мастер - 3.5.0.0
Модбас Слэйв - 3.4.0.0
3) Компиляция - очистить все
Компиляция - перекомпиляция
Должно все получиться
P.S. я щас только заметил, что прибор у вас модификации без WEB. Эта прошивка для данного контроллера плохая - в ней интерфейсы не работают.
Рекомендую пока отложить настройку обмена.
Сейчас запущена процедура обновления прошивок для СПК2хх. На следующей неделе будут прошивки с ядром 3,5,3,40.