Почему станция Simatic PC всегда добавляется в качестве OPC-сервера, если ПЛК уже имеет эту функцию?
blockquote>OPC UA имеет довольно мало преимуществ по сравнению с другими промышленными протоколами связи. Связь является / может быть безопасной, проект открыт (источник доступен на GitHub, спецификация бесплатна), ...
/ Как сервер PLC OPC взаимодействует напрямую с моим клиентом? (Любое программирование на ПЛК)
blockquote>Связь между вашим S7-1500 и вашим компьютером является сквозной связью OPC UA. Я не знаю спецификацию сервера S7-1500 OPC UA и вашего клиента OPC UA, но, полагаю, они используют OPC UA Binary over TCP
Для ограничений сертификатов, как определено в «Руководстве по функциям, 10/2018, A5E03735815-AG (стр. 222) », что означает« Максимальное количество реализуемых методов сервера »,« Максимальное количество аргументов »,« Максимальное количество интерфейсов сервера »,« Максимальное количество узлов в пользовательском интерфейсе сервера » "," Максимальный размер загружаемых серверных интерфейсов "?
blockquote>Ваша конфигурация может содержать методы OPC UA. Я полагаю, что Siemens определил ограничение на количество методов. То же самое для количества аргументов, доступных в каждом из методов. Также должно быть некоторое ограничение на количество доступных интерфейсов сервера в вашем контроллере.
Как я могу оценить эти числа из моего приложения?
blockquote>Я вполне уверен, что вы можете найти эти ограничения в руководстве по ПЛК Siemens;)
Ну, это может быть проблемой. Мои строки мерзавца-cvsimport похожи на это:
git cvsimport -p x ...
-p x, как, предполагается, передает-x опцию cvsps, чтобы сказать этому игнорировать кэшируемый вывод, что это разбросало ложь от предыдущих выполнений. Я думал главная причина сделать, который был так, чтобы последние несколько patchsets, которые могли бы быть неполными, были выведены и завершились в следующий раз, когда Вы работаете. Повороты там могут быть большим количеством проблем, которые это устраняет, и это может быть одним из них.
Я учился выполнять мерзавца cvsimport этот путь из этой записи в блоге, которая в настоящее время является одним из самых высоких хитов на Google для "мерзавца cvs". Это было только в процессе выше, где я пытался выполнить мерзавца-cvsimport через отладчик Perl на выводе от cvsps, который я должен был проверить и видеть, какие аргументы действительно шли в cvsps. Я узнал, что cvsps выполнялся как это:
cvsps --norc x --cvs-direct ...
Вместо:
cvsps --norc -x --cvs-direct ...
И я экспериментально проверил, что получаю другой вывод от cvsps с некоторым patchsets, отсутствующим (я понятия не имею, что шаблон), когда x передается вместо-x. Благодаря закону Murphy's cvsps, кажется, не сообщает, что это было проблемой, и мерзавец-cvsimport никогда не видит его.
Так так или иначе мерзавец cvsimport должен быть выполнен как это:
git cvsimport -p -x ...
Мои предыдущие версии этого репозитория полностью политы из шланга в этой точке, но я смог вызвать последнюю из проблемных фиксаций в них (некоторые более ранние фиксации отсутствуют, хотя). Таким образом, я добираюсь для прохождения через четырехчасового процесса импорта еще раз, и я надеюсь, что это будет им!
Одна последняя подсказка: мерзавец-cvsimport в Windows, кажется, не работает вообще. Я получил меньше чем 10% количества фиксаций, хотя я привел в порядок ветер с деревом, которое напоминает текущее состояние нашего проекта. Это просто, кажется, испытывает недостаток почти во всей истории...
Я недавно встретился с такой вещью - была фиксация в CVS, который не обнаружился в мерзавце после мерзавца cvsimport; более поздние фиксации сделали (это укусило меня трудно, потому что я произвел нерабочие патчи впоследствии.
Однако фиксация была проста и глупа - я просто сбросил ответвление cvs/master перед недостающей фиксацией, повторно выполненный мерзавец cvsimport, и там это было.
Хм, хорошие новости - то, что мерзавец-cvsimport, кажется, записан в Perl, и я, оказывается, программист Perl, поэтому возможно, я могу, по крайней мере, ступить через это с отладчиком Perl для обнаружения то, что происходит во время той фиксации.
Для любого, кто хочет попробовать это, необходимо будет определить местоположение полного пути мерзавцу-cvsimport и подать его к жемчугу (интерпретатор Perl) с переключателем-d:
perl -d /usr/local/libexec/git-core/git-cvsimport
Я не разработал все другие опции, чтобы сделать это, все же... Я должен буду подать мерзавца-cvsimport вывод cvsps непосредственно, я думаю...
Большое спасибо! У меня была такая же проблема, и я смог решить ее с вашей помощью!
Я даже нашел способ избежать повторного запуска cvsimport с нуля. Просто установив для ветки 'master' и 'origin' более старые коммиты git, cvsimport повторно импортировал все патчи, включая отсутствующие:
найти ID коммита старше отсутствующих коммитов:
git log
делаем 'origin' указывающим на этот коммит
git branch -f origin
переключаемся на origin (чтобы 'master' не был текущим HEAD)
git checkout origin
теперь делаем 'master' указывающим на более старый коммит
git branch -f master origin
переключаемся обратно на master
git checkout master
теперь, время полностью откатилось назад, и вы можете снова выполнить cvsimport, на этот раз правильно
git cvsimport . ..