Косвенная адресация в SCL TIA Portal

Промышленные Логические Контроллеры SIMATIC S7-200/300/400
Post Reply
Aldtlt
Posts: 7
Joined: Mon Jul 09, 2018 1:08 pm

Косвенная адресация в SCL TIA Portal

Post by Aldtlt » Fri Aug 10, 2018 7:23 am

Всем привет, кто-нибудь может сталкивался с программированием в TIA Portal на SCL.
Нужно в цикле последовательно обращаться к значениям в блоке DB, для этого пытался использовать косвенную адресацию.
При обращении к данным в DB вида DB60.DBW[#i] символы DBW подсвечиваются красным. Причина: Tag DB60.DBW не определен, хотя при обращении DB60.STAT0 проблем нет.
Image

Может кто обходил эту проблему? Пока единственный вариант вижу, использовать функции PEEK и POKE.

Info
Faq & Info
Faq & Info
Posts: 397
Joined: Wed Oct 05, 2005 9:00 am

Re: Косвенная адресация в SCL TIA Portal

Post by Info » Fri Aug 10, 2018 7:32 am

(sfaq) 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
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.
Image
Для оптимизированных DB S7-1200/1500 такая конструкция может не прокатить... там в DB адресов нет (h)
поэтому для таких применений надо использовать только традиционные DB - смотри свойства DB: выбирай Standard block access или Optimized block access
(sfaq) 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

Aldtlt
Posts: 7
Joined: Mon Jul 09, 2018 1:08 pm

Re: Косвенная адресация в SCL TIA Portal

Post by Aldtlt » Fri Aug 10, 2018 8:41 am

Спасибо за информацию, забыл сказать что у меня используется S7-1200, а данный пример подходит для S7-300/400. Для S7-1200 он не работает, блоки DB не оптимизированные. Но благодаря ссылкам нашел выход, создал в DB массив, тогда к элементам можно обращаться в виде записи DB60.Array[#Nmbr].

Oll Bell
Posts: 117
Joined: Sun Apr 17, 2011 9:49 pm

Re: Косвенная адресация в SCL TIA Portal

Post by Oll Bell » Sat Aug 18, 2018 6:30 pm

скажите, нашел ли кто решение использовать слайс обрашение в цикле?
блоки оптимированные.
Пока единственный вариант вижу, использовать функции PEEK и POKE.
пример не подскажете, может в цикле можно обращаться

Aldtlt
Posts: 7
Joined: Mon Jul 09, 2018 1:08 pm

Re: Косвенная адресация в SCL TIA Portal

Post by Aldtlt » Mon Aug 20, 2018 3:49 am

То что у меня реализовано, если вопрос в этом:

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;

Oll Bell
Posts: 117
Joined: Sun Apr 17, 2011 9:49 pm

Re: Косвенная адресация в SCL TIA Portal

Post by Oll Bell » Sun Aug 26, 2018 4:55 am

нет я имел слайс доступ
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;

В цикле можно
спасибо

Post Reply