Профиль должен быть заполнен на русском языке кириллицей. Заполнение профиля заведомо ложными или некорректными данными - причина возможного отказа в регистрации на форуме.

Help me по АЛЕН БРЕДЛИ

PLC, прочие контроллеры, промышленные компьютеры, операторские панели

Автор темы
miniv2

Help me по АЛЕН БРЕДЛИ

Сообщение miniv2 » 26 авг 2009, 13:19

Господа мы имеем проблему, помогите ее решить. год назад нам поставили PLС ален бредли.
Сейчас технологическая система не может работать, контроллер выдает ошибку. Не можем ее убрать.
Почти не имеем описания внутренней логики.
Поясните пожалуйста:
- можно ли както ноутбук подключить к контроллеру , что для этого нужно.
- где найти программу работы с контроллером аленбрели.
- описание операторов программирования?, сам имею опыт с simatic. Думаю с аленбредли разберусь, хочу
посмотреть условия для ошибки. Достало уже очень.


andrmur
освоился
освоился
Сообщения: 218
Зарегистрирован: 24 июл 2008, 08:22
Ф.И.О.: Мурашко Андрей Викторович
Откуда: Москва
Благодарил (а): 6 раз
Поблагодарили: 2 раза
Контактная информация:

Re: Help me по АЛЕН БРЕДЛИ

Сообщение andrmur » 26 авг 2009, 15:05

Уважаемый miniv2!

Вы сможете получить более качественную и быструю помощь, если напишете на support <гав> rockwell <точка> ru свой запрос с указанием вашего настоящего имени и места работы.

Учитывая обстоятельства запроса, предполагаю, что контроллер вы получили вместе с какой-то машиной из-за бугра и потеряли "все концы"...
с наилучшими пожеланиями,
Андрей Мурашко


Автор темы
miniv2

Re: Help me по АЛЕН БРЕДЛИ

Сообщение miniv2 » 27 авг 2009, 03:52

Спасибо за ответ. Попробую.


Efrem
здесь недавно
здесь недавно
Сообщения: 13
Зарегистрирован: 19 сен 2010, 10:05
Ф.И.О.: Ефремов Александр Влаидмирович
Откуда: Санкт-Петербург
Контактная информация:

Re: Help me по АЛЕН БРЕДЛИ

Сообщение Efrem » 18 мар 2011, 16:24

Здравствуйте, господа. Столкнулся с проблемой "переложить" С++ код на ST или LD. В коде функция расчета CRC нужным мне способом:

////////////////////////////////////////////////////////
// Функция вычисляет и возвращает циклический код для
// последовательности из len байтов, указанной *msg.
// Используется порождающий полином:
// (X в степени 16)+(X в степени 12)+(X в степени 5)+1.
// Полиному соответствует битовая маска 0x1021.
//
int CRCode (char *msg, int len)
{
int j, crc = 0;
while ( len-- > 0 )
{
crc = crc ^ (int) *msg++ << 8;
for ( j=0; j < 8; j++ )
{
if(crc & 0x8000) crc = (crc << 1) ^ 0x1021;
else crc <<= 1;
}
}
return crc;
}

Эта фича нужна для окончания написания драйвера связи с ASCII устройством.
Проблема в том, что в ST нет функций\инструкций побитового сдвига, а в LD нет контрукций типа WHILE ...DO. Решить задачу "нестандартным" способом у меня не получилось
Помогите, плз!!! Всем заранее спасибо.

Аватара пользователя

Looker
осмотрелся
осмотрелся
Сообщения: 189
Зарегистрирован: 09 фев 2011, 11:32
Ф.И.О.: Дитрих Евгений
Откуда: Донецк
Благодарил (а): 22 раза
Поблагодарили: 5 раз

Re: Help me по АЛЕН БРЕДЛИ

Сообщение Looker » 18 мар 2011, 17:30

Efrem писал(а): Эта фича нужна для окончания написания драйвера связи с ASCII устройством.
Проблема в том, что в ST нет функций\инструкций побитового сдвига, а в LD нет контрукций типа WHILE ...DO. Решить задачу "нестандартным" способом у меня не получилось
Помогите, плз!!! Всем заранее спасибо.

Все делается, готовый пример на ST для CRC16.
Есть там "промахи", но работе не мешают.

Для LD надо использовать [LBL] и (JMP).


GE_IP
здесь недавно
здесь недавно
Сообщения: 10
Зарегистрирован: 07 дек 2009, 14:16
Ф.И.О.: Волченков Александр

Re: Help me по АЛЕН БРЕДЛИ

Сообщение GE_IP » 18 мар 2011, 17:41

Сорри что значит нет побитового сдвига? Это же операция умножения на степень двойки.


Efrem
здесь недавно
здесь недавно
Сообщения: 13
Зарегистрирован: 19 сен 2010, 10:05
Ф.И.О.: Ефремов Александр Влаидмирович
Откуда: Санкт-Петербург
Контактная информация:

Re: Help me по АЛЕН БРЕДЛИ

Сообщение Efrem » 21 мар 2011, 18:05

Вставил указанную в ссылке функцию, спасибо Looker. Но результат у меня все-равно не получился :(
Вот тестовый код:
//---------------------------------------------------------------------------
array_test[0] := 16#02;
array_test[1] := 16#81;
array_test[2] := 16#10;
array_test[3] := 16#1F;
array_test[4] := 16#0C;
array_test[5] := 16#31;
array_test[6] := 16#34;
array_test[7] := 16#36;
array_test[8] := 16#10;
array_test[9] := 16#02;
array_test[10] := 16#09;
array_test[11] := 16#30;
array_test[12] := 16#30;
array_test[13] := 16#30;
array_test[14] := 16#09;
array_test[15] := 16#30;
array_test[16] := 16#34;
array_test[17] := 16#35;
array_test[18] := 16#09;
array_test[19] := 16#30;
array_test[20] := 16#30;
array_test[21] := 16#30;
array_test[22] := 16#09;
array_test[23] := 16#31;
array_test[24] := 16#0C;
array_test[25] := 16#10;
array_test[26] := 16#03;

CRC_16(CRC_TEST, array_test, 0, 27, 16#1021, CRC_Out_Test);
//----------------------------------------------------------------------------
У мнея CRC_Out_Test получилась 0F 66
а вот сканированная строка запроса от производителя (его софт на его прибор)
строка запроса : 02 81 10 1F 0C 31 34 36 10 02 09 30 30 30 09 30 34 35 09 30 30 30 09 31 0C 10 03 CRC1 CRC2,
CRC = 12 09
М.б. кто-нибудь подскажет в чем не складывается...
Заранее спасибо...


Efrem
здесь недавно
здесь недавно
Сообщения: 13
Зарегистрирован: 19 сен 2010, 10:05
Ф.И.О.: Ефремов Александр Влаидмирович
Откуда: Санкт-Петербург
Контактная информация:

Re: Help me по АЛЕН БРЕДЛИ

Сообщение Efrem » 22 мар 2011, 13:17

GE_IP писал(а):Сорри что значит нет побитового сдвига? Это же операция умножения на степень двойки.

Может быть подскажете как написать строку
crc = crc ^ (int) *msg++ << 8;

и строку
if(crc and 0x8000) crc = (crc << 1) ^ 0x1021; else crc <<= 1;

на ST? Очень был бы благодарен....
Я написал код
//-------------------------------------
crc := crc XOR value * 256; // где value это "(int) *msg"
value := value +1;
.....
if (crc and 16#8000) then crc := (crc * 2) XOR 16#1021; else crc := crc * 2; end_if;
//--------------------------------------
Правильно я написал?.... Если ДА, то остается только "перевести" выражение (int) *msg на ST. HELP!!!


Efrem
здесь недавно
здесь недавно
Сообщения: 13
Зарегистрирован: 19 сен 2010, 10:05
Ф.И.О.: Ефремов Александр Влаидмирович
Откуда: Санкт-Петербург
Контактная информация:

Re: Help me по АЛЕН БРЕДЛИ

Сообщение Efrem » 25 мар 2011, 14:56

Кому интересно, вот код для указанного выше примера
//------------------------------------------------------------------------------------
CRC_Write := 0;
for Length := 2 to Data_SPT_Write.LEN-1 do
CRC_Write := CRC_Write XOR Data_SPT_Write.data[Length] * 256;
for L:=0 to 7 do
if (CRC_Write & 16#8000) <> 0 then CRC_Write := CRC_Write * 2 XOR 16#1021;
else CRC_Write := CRC_Write * 2;
end_if;
end_for;
end_for;

// Выделим старший и младший байты
CRC.Source := CRC_Write;
CRC.Length := 8;
CRC.DestBit := 0;
CRC.Target := 0;

CRC.SourceBit := 0;
BTDT (CRC);
CRC_Lo := CRC.Dest;

CRC.SourceBit := 8;
BTDT (CRC);
CRC_Hi := CRC.Dest;
//--------------------------------------------------------------------

типы данных:
CRC_Lo , CRC_Hi - SINT;
CRC_Write - INT;
Data_SPT_Write - String;
CRC - FBD_BIT_FIELD_DISTRIBUTE


Efrem
здесь недавно
здесь недавно
Сообщения: 13
Зарегистрирован: 19 сен 2010, 10:05
Ф.И.О.: Ефремов Александр Влаидмирович
Откуда: Санкт-Петербург
Контактная информация:

Re: Help me по АЛЕН БРЕДЛИ

Сообщение Efrem » 19 июл 2011, 11:16

Всем привет. Очередная проблема по любимому АВ. Теперь по его родной скаде RSVeiw32 как можно быстренько из RSLogix5000перенести все тэги в RSView32??? Я как только не пытался импорт\экспорт - не получается, такое ощущение что RSLogix эспортирует в формате, который RSView32 "не понимает" :(( А ручками набивать каждый тэг уже умаялся. HELP!!!

Аватара пользователя

Looker
осмотрелся
осмотрелся
Сообщения: 189
Зарегистрирован: 09 фев 2011, 11:32
Ф.И.О.: Дитрих Евгений
Откуда: Донецк
Благодарил (а): 22 раза
Поблагодарили: 5 раз

Re: Help me по АЛЕН БРЕДЛИ

Сообщение Looker » 20 июл 2011, 10:57

Efrem писал(а):Всем привет. Очередная проблема по любимому АВ. Теперь по его родной скаде RSVeiw32 как можно быстренько из RSLogix5000перенести все тэги в RSView32??? Я как только не пытался импорт\экспорт - не получается, такое ощущение что RSLogix эспортирует в формате, который RSView32 "не понимает" :(( А ручками набивать каждый тэг уже умаялся. HELP!!!

См. Logix 5000 Tag Import Utility for RSView32...
Сразу туда не войдешь - требуется регистрация.


Вернуться в «Средний уровень автоматизации»



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 0 гостей