Низкая скорость обмена данными м/у WinCC и
S7-300
Lidiya; 18.7.03
Добрый день!
Есть WinCC 5.1 и S7-315-2DP. Обмен по Profibus DP. Скорость - 12
м/бит.
Рабочая станция: Win2000 Prof., P4 2.4GHz, 512Mb RAM. Время цикла
обработки программы в контроллере - 24мс.
При этом скорость чтении/записи внешних тегов в скриптах очень
низкая, чтение 1 тега примерно за 5 сек.
Подскажите, пожалуйста, с чем это может быть связано? Буду
признательна за любую информацию.
Re: Низкая скорость обмена данными м/у WinCC
и S7-300
Дмитрий; 21.7.03
Имеются ввиду скрипты в Global Action? Вероятно цикл вызова
скриптов установлен в 5 сек.
Re: Низкая скорость обмена данными м/у WinCC
и S7-300
Lidiya; 21.7.03
Нет, скрипт вызывается по кнопке: считываем значения тегов из
контроллера и выводим в окно диагностики. При этом происходит
сильное торможение, задержка около 5 сек.
Re: Низкая скорость обмена данными м/у WinCC
и S7-300
Дмитрий; 21.7.03
Надо проанализировать скрипт.
Re: Низкая скорость обмена данными м/у WinCC
и S7-300
Lidiya; 21.7.03
Например, скрипт обнуления переменных:
char temp1[50];
int i=1;
for ( i=1; i<9; i++ )
{
sprintf(temp1,"W1To_%d",i);
SetTagBitWait(temp1,0);
printf("%s=%d\r\n",temp1,
GetTagBitWait(temp1));
}
Re: Низкая скорость обмена данными м/у WinCC
и S7-300
Дмитрий; 21.7.03
Попробуйте тоже но без Wait.
Re: Низкая скорость обмена данными м/у WinCC
и S7-300
Дмитрий; 22.7.03
Помогло?
Re: Низкая скорость обмена данными м/у WinCC
и S7-300
Lidiya; 22.7.03
Нет, я думаю, дело не в функции, а в каких-то настройках.
Re: Низкая скорость обмена данными м/у WinCC
и S7-300
Юрий
Оганесян; 23.7.03
Дмитрий прав, не надо использовать *Wait, т.к. при этом выполнение
команды идет после отработки всех S7-функций и в ТОМ же потоке, что
и WinCC.
А иначе - в отдельном потоке и с частотой обновления в 2 раза
быстрее чем задал программер.
Про принципы обновления тэгов примененные в WinCC можно прочитать в
Help'e, сделав поиск по GetTagXXX.
А у приведенного тобою скрипта КАЧЕСТВЕННО лучшего быстродействия
не добиться.
Re: Низкая скорость обмена данными м/у WinCC
и S7-300
Чистяков Дмитрий ОАО СеверСталь; 23.7.03
Для обнуления какого либо участка памяти в контроллере лучше всего
использовать соответствующий блок SFC 21. А из WinCC достаточно
лишь выдать на его входы параметры и дать команду на выполнение.
Данные будут обнулены за один скан контроллера.