[ New messages · Members · Forum rules · Search · RSS ]
  • Page 1 of 1
  • 1
Forum moderator: Alexor  
Forum » Process Simulator » Russian » Подключение Process Simulator к S7-PLCSIM V13 SP1 Update 1 (Работает ли такая связка?)
Подключение Process Simulator к S7-PLCSIM V13 SP1 Update 1
vastrohDate: Tuesday, 16.02.2016, 04:24 | Message # 1
Private
Group: Users
Messages: 4
Reputation: 0
Status: Offline
Добрый день, Александр.

При пользовании классическим Step Ваш симулятор очень сильно выручал при тестировании.  Перешли на CPU ET200SP с TIA Portal и не получается настроить соединение между "обновлённым" PLCSIM и Вашим симулятором.
Такое соединение вообще возможно?
 
AlexorDate: Tuesday, 16.02.2016, 15:45 | Message # 2
Major general
Group: Administrators
Messages: 293
Reputation: 1
Status: Offline
Добрый день!

К сожалению новый PLCSIM от Siemens не поддерживает старый API для соединения через COM объект. Ни каких данных в открытом виде о новом API я пока не нашел.
Есть такая программа NetToPLCSim, так вот у неё реализован хитрый хакерский метод подключения. Исходники открыты, но у меня пока руки не дошли их интегрироватьв PS.

Не пробовал, но думаю можно реализовать связку "новый" PLCSim <-> NetToPLCSim <-> Process Simulator (S7IsoTCP).
 
antonjakimovicDate: Tuesday, 10.05.2016, 14:59 | Message # 3
Private
Group: Users
Messages: 15
Reputation: 0
Status: Offline
Я заметил такую странность.
На машине WinXP, где установлен Step7 V5.5 и S7-PLCSIM V5.4 SP5 Update 3 программа подключается и работает
исправно, но на Win7, где установлен TIA portal V13 SP1, и тот-же
S7-PLCSIM V5.4 SP5 Update 3, соединения не происходит.

При попытке соединиться выдает "Unable to connect application instance №1.",
а всплывающее окно над красным восклицательном знаке - "S7ProSim is not
connected to S7-PLCSIM. (80040211)"

Интересно, что установка Process Simulator не пошла в нормальном режиме, а пришлось инсталлировать в "Compatibility mode".

Пробовал подключиться и по схеме PLCSim <-> NetToPLCSim <-> Process Simulator (S7IsoTCP).
Не прошло.
 
AlexorDate: Tuesday, 10.05.2016, 19:05 | Message # 4
Major general
Group: Administrators
Messages: 293
Reputation: 1
Status: Offline
Маловероятно,что это связано с TIA Portal или Win7. У меня точно такая система и всё
работает.

1) Для инсталляции и работы PS нужны права администратора и отключённый UAC.
Иногда достаточно только прав.

2) Точно пытаетесь подключиться к экземпляру №1? Сверьте номер в заголовке окна
PLCSim. Там должно быть "S7-PLCSIM1".
 
vastrohDate: Thursday, 19.05.2016, 09:21 | Message # 5
Private
Group: Users
Messages: 4
Reputation: 0
Status: Offline
Alexor, так и не получилось у меня полноценно подключить Process Simulator к PLCSim для 1200/1500 серии. Применение NetToPLCSim v1.1 в качестве "прослойки" позволило обеспечить установление связи, чтение/запись в DB и чтение входов/выходов. Запись во входы, к сожалению не получилось осуществить. А без входов симуляция ОУ невозможна(
Как добился хотя бы этого - необходимо настроить контроллер [General/Protection/Connection mechanisms -> галочка 'Permit access with PUT/GET communication from remote partner
(PLC,HMI,OPC..)].
Вы не проверяли работу Process Simulator с PLCSim s7-1200/1500?
 
AlexorDate: Thursday, 19.05.2016, 13:44 | Message # 6
Major general
Group: Administrators
Messages: 293
Reputation: 1
Status: Offline
Добрый день,

Нет, пока с TIA практически не работал.

Нашёл в описании NetToPLCsim такую строчку:
it's possible to read and write timer (T) and counter ©,read digital-inputs (I) and write digital-outputs (O)
Похоже, что входа можно только читать.

Есть хорошая новость, похоже новый API для подключения внешних программ к PLCSim для симуляции всё же будет в TIA V14. Опция называется PLCSim Advanced (https://youtu.be/oIs5t5ITNJA).
 
vastrohDate: Friday, 20.05.2016, 11:49 | Message # 7
Private
Group: Users
Messages: 4
Reputation: 0
Status: Offline
Quote
No limits in supported data areas
Перед это фразой немного смущают. Но, такое уточнение соответствует наблюдаемому мной поведению - входы перезаписываются ПЛК (https://sourceforge.net/p/nettoplcsim/discussion/912717/thread/3d0254bb/#fe56/7c2e)

Quote
I would not recommend to read or write to input and outputs, but with nettoplcsim v9.x it should nevertheless be possible to do this. But
inputs are overwritten every cacle by the peripheral data. The bevaviour
is in Plcsim the same as in a real Plc.

PLCSim Advanced - пока для меня это самое интересное из нововведений v14. Официальная интеграция с MATLAB Simulink даст отличный инструмент для моделирования (http://www.siemens.com/press/pool/de/pressemitteilungen/2016/digitalfactory/PR2016030165DFEN.pdf).

Added (20.05.2016, 11:49)
---------------------------------------------
Итак, без вмешательства в программу ПЛК всё же не обошлось, но запись на входы получил созданием DB(7000), в которую пишет Process Simulator и из которой функцией


Code
// ЕСЛИ симуляция включена
      A     "MODE".SIMULATION_EBALED
      JCN   SKP_Simulation
// {
      CALL  POKE_BLK
         number_type:=DInt
         area_src        :=16#84 // Область источника - DB
         dbNumber_src    :=7000  // Адрес DB с виртуальными входами модели
         byteOffset_src  :=0
         area_dest       :=16#81 // Целевая область - Input
         dbNumber_dest   :=0
         byteOffset_dest :=0
         count           :=19    // Количество передаваемых байт
// }
SKP_Simulation : NOP 0
Данные копируются в область входов. Функцию лучше вызывать непосредственно перед обработкой входов. Вызов в OB1 приводит к страшным тормозам в симуляторе HMI.

MOVE_BLK_VARIANT у меня почему-то не захотела записывать дискретные входы (видимо проблема с ANY-указателем), поэтому использую POKE_BLK.


Message edited by vastroh - Friday, 20.05.2016, 04:13
 
denzhigDate: Tuesday, 06.02.2018, 16:55 | Message # 8
Lieutenant
Group: Users
Messages: 42
Reputation: 0
Status: Offline
День добрый.

Столкнулся с проблемой одной:при подключении к PLCSim-у (TIA-шному) через NetToPLCSim - чтение выходов происходит в любой момент времени, даже когда внутренний цикл контроллера ещё выполняется. Происходит это редко, но происходит и этого достаточно чтобы напортачить.
Есть-ли возможность вычитывать не просто выхода (и писать с-но входа), а через PQ (PI)?
 
AlexorDate: Tuesday, 06.02.2018, 18:58 | Message # 9
Major general
Group: Administrators
Messages: 293
Reputation: 1
Status: Offline
Добрый,

Нет.
В библиотеке Snap7, которую я использую, таких функций нет.
PS "видит" PLCSim через NetToPLCSim как контроллер, а не как симулятор.
Доступны функции чтения/записи как для SCADA, поэтому сомниваюсь, что это возможно.
 
denzhigDate: Friday, 09.02.2018, 11:29 | Message # 10
Lieutenant
Group: Users
Messages: 42
Reputation: 0
Status: Offline
Странно как-то: выхода записываются, меркеры тоже и дб-шки пишутся, а вот входа не пишутся...

А как в PS указывается запись входов? например если надо записать в "I0.0" прямо так и пишется?
может попробовать добавлять в конце ":P".


Message edited by denzhig - Friday, 09.02.2018, 13:52
 
denzhigDate: Friday, 09.02.2018, 14:51 | Message # 11
Lieutenant
Group: Users
Messages: 42
Reputation: 0
Status: Offline
vastroh, не прокатит - между циклами OB1 области входов всё равно очищаются.
 
AlexorDate: Saturday, 10.02.2018, 12:24 | Message # 12
Major general
Group: Administrators
Messages: 293
Reputation: 1
Status: Offline
denzhig, в Snap7 есть класс (точнее в С# обёртке для этой библиотеки) - S7Client с методами ReadArea, WriteArea. В качестве аргументов туда передаётся тип памяти и адрес. Для передачи значений byte[].
Вот типы памяти:
    S7AreaPE 0x81 Process Inputs.
    S7AreaPA 0x82 Process Outputs.
    S7AreaMK 0x83 Merkers.
    S7AreaDB 0x84 DB
    S7AreaCT 0x1C Counters.
    S7AreaTM 0x1D Timers
Из них таймеры и счётчики PS не использует.

 
denzhigDate: Sunday, 11.02.2018, 14:41 | Message # 13
Lieutenant
Group: Users
Messages: 42
Reputation: 0
Status: Offline
Ясно, я уже тут по совету vastroh попробовал копировать из DB во входа - тоже не всегда работает: если в OB1, то работает (и то через раз), а если в OB32, например чтоб избежать вычитки параметров из середины цикла ОП-шкой, то не работает вообще.
Я к чему написал про  добавку ":P" - запись во входа не работает принципиально нигде, НО если на встроенном симуляторе (не Advanced) создать именно переменную с таким окончанием - то чудесным образом симуляция входов работает.
В общем самый лучший выход - написать собственный обработчик (FB) дискретных входов и в нём предусмотреть возможность симуляции - тогда и писать симулированные значения надо будет в DB-шку.


Message edited by denzhig - Sunday, 11.02.2018, 14:55
 
AlexorDate: Monday, 12.02.2018, 10:48 | Message # 14
Major general
Group: Administrators
Messages: 293
Reputation: 1
Status: Offline
Все конечно дело
вкуса, но я работаю так:

1) Создаю DB со всеми ВХОДАМИ, в который в начале OB1 переписываю актуальные
данные с реальных входов, либо из симуляционного DB. Дальше везде в программе
использую только информацию из этого DB. Выбор источника данных по bool ключу.
2) В конце OB1, опять в зависимости от ключа, переписываю все ВЫХОДЫ в ещё один
отдельный DB, реальные данные стираю.

Симуляция всегда идёт через DBшки.
Да, в контроллере есть дополнительная логика, ну и что? Зато можно даже на ПНР
включить симуляцию и что-то протестировать. Благодаря тому, что в режиме
симуляции все выходы стираются, ни чего из реального оборудования не включится.
 
Forum » Process Simulator » Russian » Подключение Process Simulator к S7-PLCSIM V13 SP1 Update 1 (Работает ли такая связка?)
  • Page 1 of 1
  • 1
Search: