My Shiny Weblog!

programming, photography and lifestyle

S7 симулатор

Как да симулирам Siemens Simatic S7 контролер? На този въпрос се опитвах да си отговоря от известно време, без да имам опит в областта на PLC контролерите. Трябваше ми нещо много просто, един TCP порт, на който да чета паметта на контролера през определено време. Понеже документацията по темата ми се стори малко и лоша, ето как става.

  • Намираме, изтегляме и инсталираме Siemens Step7 Professional 5.4 на компютър с Windows XP Professional (не работи с Home Edition). Има го в Emule.
  • Изтегляме и инсталираме NetToPLCSim на същия компютър.
  • Стартираме SIMATIC Manager и отваряме примерния проект PROJECT-ETHERNET_en.
  • Избираме SIMATIC 400(1)
  • Цъкаме на иконката Simulation On/Off.
  • Избираме Select CPU access mode.
  • Избираме примерния проект за Entry point.
  • Избираме Ethernet модула на първия контролер (SIMATIC 400(1)) и OK.
  • Включваме контролера (местим човката от STOP на RUN в CPU прозореца).
  • Стартираме NetToPLCSim.exe.
  • Натискаме Start за да тръгне сървъра (ако дава грешка – убиваме Step7 процеса, който слуша на TCP port 102).
  • Теглим и компилираме Libnodave на UNIX компютър.
  • Изпълняваме testISO_TCP, като за параметър подаваме IP адреса на Windows компютъра.

Ако всичко е наред, нулите от паметта на контролера ще се визуализират в прозореца на NetToPLCSim, както и в UNIX терминала. С помощта на Libnodave можем да разработваме програми, които наблюдават/управляват мрежи от Simatic контролери без да използваме софтуер на Siemens. А описаната тук технология ни позволява да тестваме такива програми, без да имаме хардуер на Siemens.