|
SMLogix Вопросы о работе в среде SMLogix и о FBD-программировании |
|
Опции темы | Поиск в этой теме |
28.01.2014, 07:33 | #1 |
Senior Member
Регистрация: Dec 2011
Сообщения: 762
Благодарил(а): 1 раз(а)
Поблагодарили:
11 раз(а) в 11 сообщениях
|
Блок Device (Link)
Из справки на блок Device (Link): Блок предназначен для сбора статистики о работе портов ввода/вывода контроллера. Попытался с помощью этого блока контролировать обмен через Ethernet на контоллере Pixel (2G). Ни чего не вышло. Перечитал справку еще раз. Насколько я понял, обмен через Ethernet контролируется только для контроллеров 2Gi. Есть ли штатные средства SMLogix для контроля обмена через Ethernet для контроллеров типа Pixel (2G)? Хотя бы на уровне успешно принятых запросов?
|
28.01.2014, 16:07 | #2 | |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 170
Благодарил(а): 15 раз(а)
Поблагодарили:
665 раз(а) в 607 сообщениях
|
Ответ: Блок Device (Link)
Цитата:
__________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
|
29.01.2014, 07:07 | #3 | ||
Senior Member
Регистрация: Dec 2011
Сообщения: 762
Благодарил(а): 1 раз(а)
Поблагодарили:
11 раз(а) в 11 сообщениях
|
Ответ: Блок Device (Link)
Цитата:
Видимо "неработа" блока Device (Link) в контроллерах Pixel (2G) связана с тем, где разбираются пакеты ModBus. Для RS485 это процессор контроллера вне зависимости от марки (Pixel, 2G, 2Gi). Для Ethernet это процессор контроллера (2Gi) или процессор модуля связи (Pixel, 2G). А модуль связи передает только голую информацию, без статистики. Хотя это тоже домыслы. Так что повторяю свой вопрос: Цитата:
|
||
29.01.2014, 10:48 | #4 | ||
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 170
Благодарил(а): 15 раз(а)
Поблагодарили:
665 раз(а) в 607 сообщениях
|
Ответ: Блок Device (Link)
Цитата:
Цитата:
2) Переменная типа "Echo" 3) "Одноразовые запросы" 4) Контроль постоянно изменяющейся переменной __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
||
29.01.2014, 11:24 | #5 | ||
Senior Member
Регистрация: Dec 2011
Сообщения: 762
Благодарил(а): 1 раз(а)
Поблагодарили:
11 раз(а) в 11 сообщениях
|
Ответ: Блок Device (Link)
Цитата:
Querys - для мастера: количество полученных ответов от слейвов TrmPacket - для мастера: количество посланных слейвам запросов NoRespons - для мастера: количество неответов от слейвов То есть для мастера блок Slave(link) определяет "средную температуру по больнице". А хочется определять температуру для каждого пациента (слейва). Если вы можете определить, какой из слейвов дает наибольший процент ошибок, то поделитесь этой сакральной информацией. Цитата:
2-4)Эти способы требуют соответствующей подготовки мастера. Слейв только отвечает на запросы мастера. А вот к мастеру привязываться не хотелось бы. Да и к интерфейсу обмена тоже. Уточню вопросы: 1. Когда и как контроллеры Pixel (2G) смогут контролировать обмен и качество обмена по Ethernet находясь а режиме слейва? 2. Когда и как контроллеры Pixel (2G, 2Gi) смогут контролировать обмен и качество обмена с каждым конкретным слейвом, в объеме предусмотренным блоком Slave(link)? |
||
29.01.2014, 12:25 | #6 | |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 170
Благодарил(а): 15 раз(а)
Поблагодарили:
665 раз(а) в 607 сообщениях
|
Ответ: Блок Device (Link)
Быть может всё же Device(link)?
Цитата:
2) Блок Slave(link) в них работал всегда Если же говорить о блоке Device(link), то это специальный отладочный блок, который и знать не знает, сколько и чего подключено к порту. Его дело - считать пакеты, пришедшие на порт и ушедшие с него. __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. Последний раз редактировалось Arsie, 29.01.2014 в 12:41 |
|
29.01.2014, 13:22 | #7 | |||
Senior Member
Регистрация: Dec 2011
Сообщения: 762
Благодарил(а): 1 раз(а)
Поблагодарили:
11 раз(а) в 11 сообщениях
|
Ответ: Блок Device (Link)
Цитата:
Цитата:
Цитата:
|
|||
29.01.2014, 14:00 | #8 | ||
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 170
Благодарил(а): 15 раз(а)
Поблагодарили:
665 раз(а) в 607 сообщениях
|
Ответ: Блок Device (Link)
Цитата:
Цитата:
Если вы будете продолжать невнимательно читать мои ответы, мы с вами так ни до чего и не договоримся. __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
||
29.01.2014, 14:27 | #9 | |||||
Senior Member
Регистрация: Dec 2011
Сообщения: 762
Благодарил(а): 1 раз(а)
Поблагодарили:
11 раз(а) в 11 сообщениях
|
Ответ: Блок Device (Link)
Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
|
|||||
29.01.2014, 16:56 | #10 | |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 170
Благодарил(а): 15 раз(а)
Поблагодарили:
665 раз(а) в 607 сообщениях
|
Ответ: Блок Device (Link)
Цитата:
Device(link) оценивает связь между сетевым модулем и контроллером. Это второе. Device(link) - это средство контроля работы локальных портов. Ваша энергия следует не в то русло. Вы пытаетесь скрестить ужа с ежом вместо того, чтобы предложить красивое и изящное решение. Некрасиво и неизящно и так можно сделать - я вам привёл список способов. Зачем вы предлагаете удлиннить этот список? Исторически сложилось (с) __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
|
30.01.2014, 08:20 | #11 | ||||||
Senior Member
Регистрация: Dec 2011
Сообщения: 762
Благодарил(а): 1 раз(а)
Поблагодарили:
11 раз(а) в 11 сообщениях
|
Ответ: Блок Device (Link)
Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
|
||||||
30.01.2014, 10:02 | #12 |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 170
Благодарил(а): 15 раз(а)
Поблагодарили:
665 раз(а) в 607 сообщениях
|
Ответ: Блок Device (Link)
Всё, что я вам мог предложить, я уже предложил.
__________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
30.01.2014, 21:13 | #13 |
Senior Member
Регистрация: May 2010
Адрес: Novosibirsk
Сообщения: 761
Благодарил(а): 1 раз(а)
Поблагодарили:
10 раз(а) в 10 сообщениях
|
Ответ: Блок Device (Link)
Я ввел переменную unix_time. Меняется каждую секунду. Для мастера - это показатель что слейв online. Для слейва - что мастер online. Соответственно используется и как heartbeat и как источник периодической синхронизации времени. Запаковка распаковка в long действует до 2038 г. и широко описана. Потом 8 байт понадобится.
__________________ В жизни 2 правила успеха: 1 Не говори всего что знаешь 2 ... |
31.01.2014, 07:47 | #14 | |
Senior Member
Регистрация: Dec 2011
Сообщения: 762
Благодарил(а): 1 раз(а)
Поблагодарили:
11 раз(а) в 11 сообщениях
|
Ответ: Блок Device (Link)
На данный момент я примерно так и делаю. Одна переменная - связь, вторая - дата/время. Суть дискусси не в том, что контроль обмена нельзя сделать в принципе. А в том, что его нельзя сделать штатными средствами лоджика. По крайней мере в полном объеме, вне зависимости от интерфейса, роли в сети и типа контроллера. Под штатными средствами подразумевается
Цитата:
Последний раз редактировалось tvf, 31.01.2014 в 08:10 |
|
31.01.2014, 10:58 | #15 | |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 170
Благодарил(а): 15 раз(а)
Поблагодарили:
665 раз(а) в 607 сообщениях
|
Ответ: Блок Device (Link)
Цитата:
Возьмём упомянутый вами частотник. Вы предложили один костыль заменить на другой костыль. И я объясню, почему. Объективно, команды на частотник нужно отправлять только при смене режимов работы. Т.е. отправили с утра команду "пуск", а команду "стоп" отправили вечером. Состояние самого частотника считываем раз в час. Этого для работы некоторых объектов достаточно. Но что сделает частотник? Он через 10 секунд (такое у большинства частотников время предустановленное) разорётся, что связь пропала. А она не пропала. Просто харатер обмена такой. Поэтому только мастер всегда знает, что происходит со связью. Потому что он инициатор обмена, только он знает все правила, потому что именно он их устанавливает, а все слейвы пляшут под его дудку. Т.е. абсолютно всегда нужно совершать телодвижения на стороне слейва, чтобы верно детектировать связь. Либо делать телодвижения на стороне мастера, чтобы выполнить требование программы на стороне слейва. Вашему частотнику требуется организовывать циклический опрос, нашему Пикселю с сетевым модулем - поставить переменную. Другими словами: два костыля - пара (c) Один костыль ничем не лучше другого, просто с первым костылём вы уже привыкли работать и принимаете его как должное и естественное. И не замечаете, как происходит "увязывание алгоритмов на мастере/слейве". __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
|
31.01.2014, 13:39 | #16 | |
Senior Member
Регистрация: May 2010
Адрес: Novosibirsk
Сообщения: 761
Благодарил(а): 1 раз(а)
Поблагодарили:
10 раз(а) в 10 сообщениях
|
Ответ: Блок Device (Link)
Цитата:
В модбасе нет проводов DTR, DSR. Поэтому любой способ детектирования связи возможен только через периодическое обращение к этому слейву и ответу от него. Блок Device(link) на пикселе разве не увеличивает значение Querys при запросе от мастера по ethernet? __________________ В жизни 2 правила успеха: 1 Не говори всего что знаешь 2 ... |
|
31.01.2014, 14:19 | #17 | |||
Senior Member
Регистрация: Dec 2011
Сообщения: 762
Благодарил(а): 1 раз(а)
Поблагодарили:
11 раз(а) в 11 сообщениях
|
Ответ: Блок Device (Link)
Цитата:
Цитата:
Цитата:
Если Пиксель выступает мастером, то все чуть лучше. Slave(link) определит превышение лимита ошибок, но причину вряд ли. В этом деле помог бы Device(link), но он показывает "средную температуру по больнице" да и то при связи через RS485, при связи через Ethernet он и этого не покажет. Вот и получается, что в Лоджике вроде есть блоки для анализа качества связи, но толку от них немного. Вот и приходится пользоваться "некрасивыми и неизящными" решениями. Если не планируется изменения в работе блока Device(link), то дальнейшая переписка не имеет смысла. Я свою потребность до вас донес, как мог аргументировал. Ваша реакция тоже ясна - все и так хорошо. Какой смысл переливать из пустого в поржнее? |
|||
31.01.2014, 14:59 | #18 | |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 170
Благодарил(а): 15 раз(а)
Поблагодарили:
665 раз(а) в 607 сообщениях
|
Ответ: Блок Device (Link)
Цитата:
Не хочу я представлять. Нафантазировать в отрыве от реальности можно что угодно. Поэтому сначала поставьте задачу, далее рассмотрим с вами варианты её решения. Если будет актуально, то подумаем, как лучше всего сделать диагностику: один блок модифицировать или десяток новых блоков создать. На всякий случай я уточню, что такое PLC. PLC не частотник. PLC сам управляет объектом, а частотник создан быть управляемым кем-то, это его предназначение в жизни. Что такое автономная работа ПЧ я знаю, не нужно тратить своё и моё время на очевидные вещи. Другими словами, вентустановка или котельная или ИТП от отключения диспетчеризации не умрёт. Она в нормальном режиме будет работать дальше. И информация о наличии диспетчеризации, откровенно говоря, не очень-то и нужна. Вы можете и не продолжать диалог, но тогда ничего и не изменится. Под лежачий камень вода не течёт. __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
|
31.01.2014, 15:05 | #19 | |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 170
Благодарил(а): 15 раз(а)
Поблагодарили:
665 раз(а) в 607 сообщениях
|
Ответ: Блок Device (Link)
Цитата:
Повторю второй раз: ПНР - это НПР. ПНР не являются типичной рабочей ситуацией на объекте. __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
|
31.01.2014, 15:58 | #20 | |
Сотрудник Segnetics
Регистрация: Feb 2010
Сообщения: 132
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Ответ: Блок Device (Link)
Цитата:
опишите подробнее с показанным примером, как у вас законфигурен этот блок, с фоткой куска проекта или примером проекта. Может чтото не так. посмотрим. |
|
31.01.2014, 16:05 | #21 | |
Senior Member
Регистрация: May 2010
Адрес: Novosibirsk
Сообщения: 761
Благодарил(а): 1 раз(а)
Поблагодарили:
10 раз(а) в 10 сообщениях
|
Ответ: Блок Device (Link)
Цитата:
Необходимость контроля возникнет если использовать пиксель как модуль расширения для другого контроллера. Связь с которым организована по ethernet. Были у нас такие объекты где мастер пром компьютер слейвы блоки расширения. Связь по дублированной ethernet. Просто как вариант применения. __________________ В жизни 2 правила успеха: 1 Не говори всего что знаешь 2 ... |
|
31.01.2014, 16:25 | #22 |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 170
Благодарил(а): 15 раз(а)
Поблагодарили:
665 раз(а) в 607 сообщениях
|
Ответ: Блок Device (Link)
Что контроль иногда нужен - с этим я никогда не спорил
Чуть поподробнее, будьте добры. У вас был какой-то неизвестный контроллер с неизвестной вам программой и вы подсунули ему Pixel, сымитировав сгоревший оригинальный модуль расширения? __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
31.01.2014, 17:56 | #23 |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 170
Благодарил(а): 15 раз(а)
Поблагодарили:
665 раз(а) в 607 сообщениях
|
Ответ: Блок Device (Link)
В Пикселе работает, порт №5
__________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
31.01.2014, 19:43 | #24 | |
Senior Member
Регистрация: May 2010
Адрес: Novosibirsk
Сообщения: 761
Благодарил(а): 1 раз(а)
Поблагодарили:
10 раз(а) в 10 сообщениях
|
Ответ: Блок Device (Link)
Цитата:
У нас был ПТК Торнадо. Пром компьютер ADVANTECH. Модули расширения торнадо с дублированным езернет. Два кольца езернет. Два свича moxa. Программа тоже торнадо. При отключении Advantech модули расширения определяют, что нет связи и переходят в безопасный режим. Поймал себя на мысли что все можно сделать точно так же и на пикселях только с одним езернетом. Где-то ранее я вам этот вариант расписывал в виде верхняя сеть RS-458 нижняя сеть RS-458 сеть диспетчеризации езернет. У них (торнадо) все дублированный езернет. У Вас Езернет на борту есть блоки диагностики есть, хотя мне юникс время больше нравится. Сразу и heartbeat и сразу синхронизация времени. Этот вариант я Вам ранее так же расписывал. И не надо мне говорить что это другая аппаратура. Народ делает в безнес центрах связь на оптоволокне между ПЛК на аналогичной вашей аппаратуре. И в Вашей аппаратуре я препятствий для этого не вижу даже в сегодняшнем виде. __________________ В жизни 2 правила успеха: 1 Не говори всего что знаешь 2 ... |
|
02.02.2014, 14:19 | #25 | |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 170
Благодарил(а): 15 раз(а)
Поблагодарили:
665 раз(а) в 607 сообщениях
|
Ответ: Блок Device (Link)
Цитата:
Абсолютно все приведённые в этой теме примеры основаны на том, что Пиксель является именно модулем расширения, а не самостоятельным устройством. Модули расширения - это MR и MC, они нормально падают в безопасное состояние по правилам, принятым в их протоколе обмена. Если использовать Пиксель в роли модуля расширения, то придётся программно реализовывать безопасное состояние и задавать критерии входа в него и выхода из него. Использование блока Device(link) для этого - опасное заблуждение. Блок покажет наличие обмена даже в том случае, когда всего один единственный запрос из десяти будет удачен. Безопасный режим отключится, а 9 значимых запросов пропадут и работа автоматики будет нарушена. Для полноценной работы нужно считать хотя бы контрольную сумму всех данных, а это означает введение дополнительных переменных. Ещё одна в роли "сердцебиения" никак не усложнит программирование системы. __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
|
03.02.2014, 08:16 | #26 | ||||
Senior Member
Регистрация: Dec 2011
Сообщения: 762
Благодарил(а): 1 раз(а)
Поблагодарили:
11 раз(а) в 11 сообщениях
|
Ответ: Блок Device (Link)
Цитата:
Цитата:
Цитата:
Цитата:
|
||||
03.02.2014, 10:13 | #27 |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 170
Благодарил(а): 15 раз(а)
Поблагодарили:
665 раз(а) в 607 сообщениях
|
Ответ: Блок Device (Link)
__________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
03.02.2014, 10:29 | #28 | |
Сотрудник Segnetics
Регистрация: Feb 2010
Сообщения: 132
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Ответ: Блок Device (Link)
Цитата:
я просто взял и проверил, ибо, когда делали этот блок, у меня была уверенность что он должен обрабатывать и Eзернет и Лонгворкс. Иначе... нафик он такой интересный нужен, с конфигурированеием портов и протоколов. а справка... справка не богом создается ее тоже люди пишуть, так что извините. |
|
03.02.2014, 11:19 | #29 |
Senior Member
Регистрация: Dec 2011
Сообщения: 762
Благодарил(а): 1 раз(а)
Поблагодарили:
11 раз(а) в 11 сообщениях
|
Ответ: Блок Device (Link)
В любом случае вопрос о качестве связи делится на 3 вопроса (как минимум):
1. Приходят ли данные? 2. Все ли данные приходят хорошими? 3. Все ли данные приходят из отправленных? Ответ об однозначно хорошей связи может быть только при положительных ответах на все три вопроса. Вы предлагаете 3 вопрос решить с помощью дополнительной переменной с контрольной суммой. Положим мы решили этот вопрос, хотя здесь не все так просто и однозначно. Но как быть с 1 и 2? Если данные не приходят, или приходят битыми, то ответ на 3 вопрос теряет смысл. Положительные ответы на 1 и 2 вопрос являются необходимыми, но недостаточными для ответа о качестве связи. Именно ответы на вопросы 1 и 2 и должен давать блок Device (Link) вне зависимости от интерфейса. |
03.02.2014, 11:22 | #30 |
Senior Member
Регистрация: Dec 2011
Сообщения: 762
Благодарил(а): 1 раз(а)
Поблагодарили:
11 раз(а) в 11 сообщениях
|
Ответ: Блок Device (Link)
|