Tools


«Сименс» в России

«Сименс» в России

Чтение массивов из DB, используя индекс на веб-странице PLC Siemens

Логические модули LOGO!, базовые контроллеры SIMATIC S7-1200

Модераторы: anna_razgoeva, gulenok_andrey

2sandro
Сообщения: 4
Зарегистрирован: 21 окт 2019, 08:47

Сообщение 2sandro » 21 окт 2019, 08:51

Здравствуйте, S7-1200 Siemens, используется веб-сервер контроллера для формирования страницы с содержимым JSON. В блоке данных (DB) содержится архив на 7 дней, каждый день - это массив от 0 до 19-ти из пользовательского типа данных. Проблем нет, если написать вручную htm-страничку вида:

Код: Выделить всё

{
:=Archive.ArchiveStove1Day1[0]."Date":[{
    "d"::=Archive.ArchiveStove1Day1[0].Dozator:,
    "c"::=Archive.ArchiveStove1Day1[0].Code:,
    "k"::=Archive.ArchiveStove1Day1[0].koef:,
    "1"::=Archive.ArchiveStove1Day1[0].kSmena1:,
    "2"::=Archive.ArchiveStove1Day1[0].kSmena2:,
    "3"::=Archive.ArchiveStove1Day1[0].kSmena3:
    }, {
    "d"::=Archive.ArchiveStove1Day1[1].Dozator:,
    "c"::=Archive.ArchiveStove1Day1[1].Code:,
    "k"::=Archive.ArchiveStove1Day1[1].koef:,
    "1"::=Archive.ArchiveStove1Day1[1].kSmena1:,
    "2"::=Archive.ArchiveStove1Day1[1].kSmena2:,
    "3"::=Archive.ArchiveStove1Day1[1].kSmena3:
    }, {
    "d"::=Archive.ArchiveStove1Day1[2].Dozator:,
    "c"::=Archive.ArchiveStove1Day1[2].Code:,
    "k"::=Archive.ArchiveStove1Day1[2].koef:,
    "1"::=Archive.ArchiveStove1Day1[2].kSmena1:,
    "2"::=Archive.ArchiveStove1Day1[2].kSmena2:,
    "3"::=Archive.ArchiveStove1Day1[2].kSmena3:
    }, {
    "d"::=Archive.ArchiveStove1Day1[3].Dozator:,
    "c"::=Archive.ArchiveStove1Day1[3].Code:,
    "k"::=Archive.ArchiveStove1Day1[3].koef:,
    "1"::=Archive.ArchiveStove1Day1[3].kSmena1:,
    "2"::=Archive.ArchiveStove1Day1[3].kSmena2:,
    "3"::=Archive.ArchiveStove1Day1[3].kSmena3: //и т.д. до 19-го
    }]}
И таким образом описать каждый день. Получается очень громоздко и такой код негативно влияет на Work Memory контроллера, её банально не хватает. Может быть как-то можно использовать какой-то индекс, а индекс получать к примеру обращением вида "http://192.168.10.103/awp/DataApp/getAr ... ml?index=2" или же каким-то образом использовать JavaScript, пока что не могу найти решение...