Всем привет, кто-нибудь может сталкивался с программированием в TIA Portal на SCL.
Нужно в цикле последовательно обращаться к значениям в блоке DB, для этого пытался использовать косвенную адресацию.
При обращении к данным в DB вида DB60.DBW[#i] символы DBW подсвечиваются красным. Причина: Tag DB60.DBW не определен, хотя при обращении DB60.STAT0 проблем нет.
Может кто обходил эту проблему? Пока единственный вариант вижу, использовать функции PEEK и POKE.
Косвенная адресация в SCL TIA Portal
-
- Faq & Info
- Posts: 428
- Joined: Wed Oct 05, 2005 9:00 am
Re: Косвенная адресация в SCL TIA Portal
In STEP 7 (TIA Portal), how can you implement indirect addressing in an SCL program?
https://support.industry.siemens.com/cs ... n&lc=ru-RU
поэтому для таких применений надо использовать только традиционные DB - смотри свойства DB: выбирай Standard block access или Optimized block access
What types of access are available in STEP 7 (TIA Portal) to access data values in blocks and what should you watch out for with the differences between the types?
https://support.industry.siemens.com/cs ... n&lc=ru-RU
https://support.industry.siemens.com/cs ... n&lc=ru-RU
Для оптимизированных DB S7-1200/1500 такая конструкция может не прокатить... там в DB адресов нетFig. 1 shows an example of how to use indirect addressing to access a memory area of a data block in the S7-300/S7-400.
поэтому для таких применений надо использовать только традиционные DB - смотри свойства DB: выбирай Standard block access или Optimized block access
What types of access are available in STEP 7 (TIA Portal) to access data values in blocks and what should you watch out for with the differences between the types?
https://support.industry.siemens.com/cs ... n&lc=ru-RU
-
- Posts: 7
- Joined: Mon Jul 09, 2018 1:08 pm
Re: Косвенная адресация в SCL TIA Portal
Спасибо за информацию, забыл сказать что у меня используется S7-1200, а данный пример подходит для S7-300/400. Для S7-1200 он не работает, блоки DB не оптимизированные. Но благодаря ссылкам нашел выход, создал в DB массив, тогда к элементам можно обращаться в виде записи DB60.Array[#Nmbr].
-
- Posts: 118
- Joined: Sun Apr 17, 2011 9:49 pm
Re: Косвенная адресация в SCL TIA Portal
скажите, нашел ли кто решение использовать слайс обрашение в цикле?
блоки оптимированные.
блоки оптимированные.
пример не подскажете, может в цикле можно обращатьсяПока единственный вариант вижу, использовать функции PEEK и POKE.
-
- Posts: 7
- Joined: Mon Jul 09, 2018 1:08 pm
Re: Косвенная адресация в SCL TIA Portal
То что у меня реализовано, если вопрос в этом:
FOR #i:=0 TO 47
DO
#Addr:="DB60".Array[#i];
"DB62".Out[#Addr]:="DB61".Out[#i];
END_FOR;
FOR #i:=0 TO 10 BY 2
DO
#Test:=PEEK(area:=16#84, dbNumber:=60, byteOffset:=#i);
END_FOR;
FOR #i:=0 TO 47
DO
#Addr:="DB60".Array[#i];
"DB62".Out[#Addr]:="DB61".Out[#i];
END_FOR;
В цикле можноOll Bell wrote:пример не подскажете, может в цикле можно обращаться
FOR #i:=0 TO 10 BY 2
DO
#Test:=PEEK(area:=16#84, dbNumber:=60, byteOffset:=#i);
END_FOR;
-
- Posts: 118
- Joined: Sun Apr 17, 2011 9:49 pm
Re: Косвенная адресация в SCL TIA Portal
нет я имел слайс доступ
https://support.industry.siemens.com/cs ... w/57374718 How in STEP 7 (TIA Portal) do you access the unstructured data types bit-by-bit, byte-by-byte or word-by-word and symbolically?
в цикле при символьной адресации и оптимированных блоках, что рекомендует сименс.
типа
https://support.industry.siemens.com/cs ... w/57374718 How in STEP 7 (TIA Portal) do you access the unstructured data types bit-by-bit, byte-by-byte or word-by-word and symbolically?
в цикле при символьной адресации и оптимированных блоках, что рекомендует сименс.
типа
Code: Select all
FOR i := 0 TO 16 DO
Qutbool[i]:= Word.%X[i];
END_FOR;
спасибоВ цикле можно