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

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

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

Post by SNike » Wed Feb 20, 2013 7:36 am

Ввожу параметр функционального блока как 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 » Thu Feb 21, 2013 9:11 pm

Обсуждение на форуме Siemens
Last edited by SNike on Fri Feb 22, 2013 6:43 am, edited 1 time in total.

Schtiel
Site Admin
Posts: 1121
Joined: Wed Sep 06, 2006 12:03 pm
Location: CIS

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

Post by Schtiel » Thu Feb 21, 2013 9:41 pm

SNike wrote:Как отменить автозамену ?
А если просто убрать символьное имя самого DB из таблицы символов?

SNike
Posts: 126
Joined: Thu Oct 02, 2008 1:28 pm
Location: Russia

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

Post by SNike » Fri Feb 22, 2013 6:50 am

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

ps
тему переименовал

sania
Site Admin
Posts: 1372
Joined: Sat Aug 13, 2005 6:15 am
Contact:

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

Post by sania » Fri Feb 22, 2013 9:58 am

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 » Fri Feb 22, 2013 1:18 pm

sania wrote:P#DBX 0.0 BYTE 2
не уловил мысли :roll:
можно пояснить?

sania
Site Admin
Posts: 1372
Joined: Sat Aug 13, 2005 6:15 am
Contact:

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

Post by sania » Fri Feb 22, 2013 1:48 pm

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 » Fri Feb 22, 2013 1:53 pm

Ок, сейчас проверю в действии

SNike
Posts: 126
Joined: Thu Oct 02, 2008 1:28 pm
Location: Russia

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

Post by SNike » Fri Feb 22, 2013 2:15 pm

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

Первый вариант не работает. Что интересно - FB14 ошибку не дает, но и данные не пишет.

Rex2701
Posts: 370
Joined: Wed Oct 13, 2010 8:44 am
Location: Russian Federation

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

Post by Rex2701 » Fri Feb 22, 2013 3:41 pm

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 » Sun Feb 24, 2013 8:59 pm

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 » Mon Feb 25, 2013 6:59 am

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

Post Reply