Как да симулирам 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.