• обязательно заполнить свой профиль на русском языке кириллицей
  • не писать свой вопрос в первую попавшуюся тему - вместо этого создать новую тему
  • дублирование сообщений приравнивается к спаму
  • за поиск и предложение пиратского ПО - бан без предупреждения
  • рекламу и частные объявления "куплю/продам" мы не размещаем ни на каких условиях

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

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

Автор темы
miniv2

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

Сообщение miniv2 »

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


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

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

Сообщение andrmur »

Уважаемый miniv2!

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

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


Автор темы
miniv2

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

Сообщение miniv2 »

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


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

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

Сообщение Efrem »

Здравствуйте, господа. Столкнулся с проблемой "переложить" С++ код на 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
специалист
специалист
Сообщения: 687
Зарегистрирован: 09 фев 2011, 11:32
Имя: Дитрих Евгений Линусович
город/регион: Донецк
Благодарил (а): 126 раз
Поблагодарили: 89 раз

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

Сообщение Looker »

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

Для LD надо использовать [LBL] и (JMP).
_______________________________________________
Узкая специализация в широком смысле этого слова ведет к широкой идиотизации в узком смысле этого слова . (С) Бернард Шоу


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

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

Сообщение GE_IP »

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


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

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

Сообщение Efrem »

Вставил указанную в ссылке функцию, спасибо 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 »

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 »

Кому интересно, вот код для указанного выше примера
//------------------------------------------------------------------------------------
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 »

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

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

Looker
специалист
специалист
Сообщения: 687
Зарегистрирован: 09 фев 2011, 11:32
Имя: Дитрих Евгений Линусович
город/регион: Донецк
Благодарил (а): 126 раз
Поблагодарили: 89 раз

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

Сообщение Looker »

Efrem писал(а):Всем привет. Очередная проблема по любимому АВ. Теперь по его родной скаде RSVeiw32 как можно быстренько из RSLogix5000перенести все тэги в RSView32??? Я как только не пытался импорт\экспорт - не получается, такое ощущение что RSLogix эспортирует в формате, который RSView32 "не понимает" :(( А ручками набивать каждый тэг уже умаялся. HELP!!!
См. Logix 5000 Tag Import Utility for RSView32...
Сразу туда не войдешь - требуется регистрация.
_______________________________________________
Узкая специализация в широком смысле этого слова ведет к широкой идиотизации в узком смысле этого слова . (С) Бернард Шоу

Ответить

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