Извините за тематический вопрос: Вроде все необходимые gsd присутствуют, но по всему проекту кучи темповых переменных. Это стиль такой, или все-таки чего-то не хватает для корректного отображения? Как привязать эти темпы к источникам данных (точнее понять, где эта привязка осуществляется)
Комментарии: 11
Alinda
это локальные
Sergey
Исходник надо. Проект выгруженный. В исходном проекте эти переменные имели названия. Но в ПЛК они загружаются
Boevoy
Исходников нет и не будет. Дело в том, что идет работа с данными, источниками которых и являются локальные переменные, а реальный источник при этом не установить. Такое ощущение, что чего-то не хватает и этот обмен идет где-то "под капотом" того, чего не хватает для отображения.
Alinda
ну тиак и смотри кто датаблок использует
Denis
локальные переменные могут являться источником данных только после их инициализации в теле подпрограммы где они именованы. Ищите инициализацию внутри блока по адресу или имени переменной. Без инициализации в данных переменных мусор(значения из прошлых вызовов других подпрограмм)
Sergey
Так у тебя же на картинке видно, где присваивание осуществляется. Вход блока присваивается локальной переменной блока
Boevoy
Есть такое, но это частный случай. По всему проекту куча мест, где не ясно, что откуда растет. Ну, потуплю еще немного, может что и сложится
Sergey
Главное про косвенную адресацию не забыть. DB может неявно вызываться
Boevoy
В общем действительно я проморгал работу с локальными, но тут вот в OB1 все равно непонятное место: SET = M 0.1 CLR = M 0.0 CALL FC 2 L #TEMP1 L 1 ==I = #TEMP10 = M 0.7 L #TEMP6 T DB255.DBW 0 L #TEMP7 T DB255.DBW 2 L #TEMP7 T DB255.DBW 4
Denis
Cross Reference в помощь. Если там искомых данных нет, то они инициализируются в HMI/SCADA или неявно, косвенной адресацией
Denis
Эти переменные живут только внутри блока и в течении периода пока блок опрашивается. Все привязки внутри блока