TIA Portal V15.1 - adresowanie symboliczne, operowanie w pętli na elementach DB

Cześć,
Mój pierwszy post i od razu chciałbym przejść do rzeczy. Podczas pisania projektów w TIA Portal V15.1 UPD2 korzystamy tylko z adresacji symbolicznej. Rodzi to pewne problemy w przypadku przetwarzania elementów w pętli. Np mam kilkaset elementów w DB i chciałbym je obrabiać wsadowo w jednej pętli.

Teraz radze sobie w taki sposób, że tworzę DB z analogicznymi strukturami ale w postaci tablicy. Następnie przed wywołaniem pętli przepisuję moje elementy do tablicy, na niej pracuję, a po zakończeniu pętli znów przepisuję elementy z tablicy do właściwych nazw.

Czy jest jakiś lepszy sposób uwzględniający w miarę dobrą wydajność i ergonomię? W tym momencie można taki układ popsuć, jeżeli dodam coś do DB w środku a nie uwzględnię tego w przepisaniu danych i wszystko zostanie przesunięte.

Są prawdopodobnie dwie opcje.

  1. DB nie zoptymalizowany. Wtedy normalnie w SCL używasz funkcji Peek i Poke aby dostać się do elementów tablicy.

  2. Twój sposób kopiowania do tablicy. Jest jeszcze opcja stworzyć tablicę w DB na samym początku i na niej operować.

Podobny wątek:
https://support.industry.siemens.com/tf/WW/en/posts/indirect-addressing-with-poke/122649?page=0&pageSize=10

zapomniałem właśnie dodać, że DB wyłącznie optymalizowane

Wydaję mi się, że od czasu tego wątku: https://support.industry.siemens.com/tf/ww/en/posts/indirectly-addressing-optimized-data-blocks-tia-v13-s7-1500-scl/111347?page=0&pageSize=10
nic się w tym zakresie nie zmieniło.

Trochę późno ale może nadpisywanie tagów przy pomocy deklaracji AT rozwiąże ten problem…

https://support.industry.siemens.com/cs/document/57132240/how-do-you-program-the-overlapping-of-tags-with-the-keyword-at-in-the-step-7-(tia-portal)-?dti=0&pnid=14674&lc=en-WW

PS. AT działa tylko z zmiennymi deklarowanymi jako IN oraz TEMP :frowning: