Преобразование P# к DBW - как отменить?

Промышленные Логические Контроллеры SIMATIC S7-200/300/400
SNike
Posts: 126
Joined: Thu Oct 02, 2008 1:28 pm
Location: Russia

Преобразование P# к DBW - как отменить?

Post by SNike »

Ввожу параметр функционального блока как P#DB37.DBX0.0 BYTE 2
По завершению ввода Step7 определяет что для этого адреса есть символ, и автоматом заменяет введенный мною Pointer на символ "TestDB".var_int, что мне совершенно не нужно.

Как отменить автозамену ?

Image
Last edited by SNike on Fri Feb 22, 2013 6:44 am, edited 1 time in total.
SNike
Posts: 126
Joined: Thu Oct 02, 2008 1:28 pm
Location: Russia

Re: Преобразование P# к символу - как отменить?

Post by SNike »

Обсуждение на форуме Siemens
Last edited by SNike on Fri Feb 22, 2013 6:43 am, edited 1 time in total.
Schtiel
Site Admin
Posts: 1122
Joined: Wed Sep 06, 2006 12:03 pm
Location: CIS

Re: Преобразование P# к символу - как отменить?

Post by Schtiel »

SNike wrote:Как отменить автозамену ?
А если просто убрать символьное имя самого DB из таблицы символов?
SNike
Posts: 126
Joined: Thu Oct 02, 2008 1:28 pm
Location: Russia

Re: Преобразование P# к DBW - как отменить?

Post by SNike »

Не помогает. Как оказалось вообще приведение идет не к символу а к DBW (на форуме Siemens уже это обсудили, ссылка в предыдущем посте)

ps
тему переименовал
sania
Site Admin
Posts: 1387
Joined: Sat Aug 13, 2005 6:15 am

Re: Преобразование P# к DBW - как отменить?

Post by sania »

P#DBX 0.0 BYTE 2
SNike
Posts: 126
Joined: Thu Oct 02, 2008 1:28 pm
Location: Russia

Re: Преобразование P# к DBW - как отменить?

Post by SNike »

sania wrote:P#DBX 0.0 BYTE 2
не уловил мысли :roll:
можно пояснить?
sania
Site Admin
Posts: 1387
Joined: Sat Aug 13, 2005 6:15 am

Re: Преобразование P# к DBW - как отменить?

Post by sania »

1
Show
Image
2
Show
Image
я-то сам не проверял...
SNike
Posts: 126
Joined: Thu Oct 02, 2008 1:28 pm
Location: Russia

Re: Преобразование P# к DBW - как отменить?

Post by SNike »

Ок, сейчас проверю в действии
SNike
Posts: 126
Joined: Thu Oct 02, 2008 1:28 pm
Location: Russia

Re: Преобразование P# к DBW - как отменить?

Post by SNike »

Так и я из спортивного интереса :)

Первый вариант не работает. Что интересно - FB14 ошибку не дает, но и данные не пишет.
Rex2701
Posts: 374
Joined: Wed Oct 13, 2010 8:44 am
Location: Russian Federation

Re: Преобразование P# к DBW - как отменить?

Post by Rex2701 »

IMHO, подобное поведение STEP'a зависит от блока.
Ваш FB14 требует на входе ADDR_1 указатель, а для RD_1 - число типа INT. В соответствии с этими требованиями STEP преобразует символьное имя в разный тип, т.е. из-за стандартов ЯП Simatic происходит явная типизация данных, и от этого никуда не деться.
SNike
Posts: 126
Joined: Thu Oct 02, 2008 1:28 pm
Location: Russia

Re: Преобразование P# к DBW - как отменить?

Post by SNike »

FB14 не требует на RD_1 тип Int, там тоже AnyPointer. На счет преобразования - таблица символов тут не участвует, описал выше.
Rex2701 wrote:Ваш FB14
FB14 не мой - он из стандартной библиотеки :)
SNike
Posts: 126
Joined: Thu Oct 02, 2008 1:28 pm
Location: Russia

Re: Преобразование P# к DBW - как отменить?

Post by SNike »

Попробовал второй вариант - тоже не подходит. При указании в SFC20 P#DB37.DBX0.0 BYTE 2 этот AnyPointer Step7 тоже автоматом превращает в DBW0
Похоже что тут либо STL, либо в DB добавить еще переменную Int и указать P#DB37.DBX0.0 BYTE 4, что на практике я и сделал. Видно никому особо не нужно передавать только одну переменную, вот и не обращали внимания.