Вложение 16641 Вложение 16642 Вложение 16643 Вложение 16644 Вложение 16646 Вложение 16645 Вложение 16647 Вложение 16648 Вложение 16649 Вложение 16650 вот, еще я думаю проблемы с заливкой программы в плк 160
Вид для печати
Вложение 16641 Вложение 16642 Вложение 16643 Вложение 16644 Вложение 16646 Вложение 16645 Вложение 16647 Вложение 16648 Вложение 16649 Вложение 16650 вот, еще я думаю проблемы с заливкой программы в плк 160
Вы бы архив с этим простым примером прикрепили бы, быстро бы нашлось, может Вы повключали лишних опций в настройках панели
Не понятно, зачем Вам LIN_TRAFO, если только не планируется, например, в дальнейшем использовать датчики с разным диапазоном, то такая функция уже есть в самом входе ПЛК. Используйте Min FV и Max FV для задания диапазона измерения в физических величинах
Вложение 16653
Вложение 16662 вот мой проект
Только не ругайтесь:rolleyes: если там неразбериха будет
На счет неразберих не понял:confused:
Оба проекта правильные, все должно работать, если только:
-не перепутали места подключения кабеля. ПЛК д.б. RS232 (не Debug), панель д.б. PLC (не Download);
-не исправный кабель ПЛК-панель.
Последнее вполне вероятно из-за конструкции кабеля, часто отваливаются проводки от ножек разъема DB9(со стороны панели). Если нечем прозвонить кабель, то можно взять вместо кабеля КС-2 кабель КС-1 (тот, что идет в комплекте с ПЛК для программирования). Кабелем КС-1 панель можно подключать к порту RS232 (не Debug) и сэкономить на специальном кабеле КС-2(кабель панель-ПЛК).
Попытка была, я на счет замены кабеля кс-1 на кс-2 ,безрезультатно, НО...перезагрузив панель и плк 160 все получилось,спасибо большое за помощь!
Вот только зачем Вы, в присланном проекте, для дисплея задали число знаков всего 5, а дробная -4. Диапазон датчика 0-10.0 и теперь дисплей вместо значения, например, 15.34 будет показывать значение в экспоненциальной форме 1.5340 +01(1.5340 е+01), это значение будет "вылазить" за границы рамки дисплея.
Сейчас исправлю,спасибо за подсказку
подскажите, пожалуйста! имеется панель сп 270 и трм 201, к которому подключен температурный датчик. Делаю пробную конфигурацию, чтобы выводить данные с ТРМа на панель. сделал два способа индикации в панели: цифровой дисплей и линейка от 0 до 100 градусов. ТРМ показывает 25,5 градусов. Что делать, если панель показывает вместо 25,5 градусов 255? С цифровым индикатором в панели все понятно. А что делать с линейкой? вот настройка линейки Вложение 16776,Вложение 16777 , вот настройки связи Вложение 16778.
Максимум данных попробуйте задать в 10 раз больше. Столько, сколько фактически будет в регистре
1000, то есть
Был тут такой вопрос - и ответ на него:
И у меня та же проблема, только преобразователь MOXA Uport 1150, без "i". Конфигуратор загружает драйвер, через раз, иногда доходит до загрузки проекта и выдает Time out, check the cable. Может, кто-то может посоветовать, как это исправить? Заранее спасибо!
Скорей всего отвалились пайки в разъемах кабеля для программирования панели и контакт между проводом и ножкой разъема только за счет кембрика. Пошевелили кабель -контакт есть, еще раз пошевелили -его уже нет, по этому через раз программируется.
Это стандартная ситуация. Нужно разобрать разъемы и подергать проводки пинцетом, отвалившиеся припаять.
Всем привет! Возможно ли сделать проект, при нажатии кнопки "Пуск" начинается отсчет времени в обратную сторону ...начиная с 60 сек. до 0. При достижении "0" кнопка "Стоп" меняет надпись на "Пуск" т.е. должна перейти в исходное положение! (кнопка "Пуск/Стоп" не фиксирована)
Добрый день. Аналогичная проблема с тем же преобразователем. В другие устройства всё заливается без пробдем, значит проводки все на месте а с СП270 не захотел работать никак. Проблема была ещё год назад, решить не смог. Купил простой юсб ту ком за 500 руб, залетает без проблем.
Совершенно не понятные исходные данные
1. Что делает кнопка, каким битом она управляет, какое ее действие включить, выключить, реверс или мгновенно включить?
2. Что значит кнопка не фиксирована?
3. Наверно Вы хотели сказать, что при нажатии кнопки надпись "Пуск" меняется на "Стоп" и через 60 сек надпись на кнопке становится "Пуск"?
4. А если до истечения 60 с опять нажать на кнопку, что должно произойти?
А в ответ тишина...
Ну тогда буду делать предположения.
1. Пусть кнопка "Пуск/Стоп" управляет битом PSB300
2. Пусть состояние PSB300=1 соответствует состоянию ПУСК, а состояние PSB300=0 соответствует состоянию СТОП
3а. Вариант действия кнопки "Включить".после нажатия устанавливается бит PSB300, надпись на кнопке меняется на СТОП, через заданный интервал времени бит PSB300 автоматически сбрасывается, надпись на кнопке меняется на ПУСК.3б. Вариант действия кнопки "Реверс".после нажатия устанавливается бит PSB300, надпись на кнопке меняется на СТОП, через заданный интервал времени или после повторного нажатия кнопки, бит PSB300 автоматически сбрасывается, надпись на кнопке меняется на ПУСК.Вложение 16962
На вспомогательные "украшательства" внимания не обращаем. Нужны только три ф.области. Счетчик времени находится в регистре PSW256
Видео:
ЗЫ. В примере интервал 15с, можно больше, просто кино будет длинным.
UPD. Очень похожий вопрос http://www.owen.ru/forum/showthread....l=1#post132725
И вариант ответа http://www.owen.ru/forum/showthread....l=1#post132738Цитата:
Так и что там с моим ранее заданным вопросом, может СП270 открыть окно без элементов управления, отсчитать определенное время и закрыться?
Анимация:
Извините, не мог ответить!
Вот проект Вложение 16968
Спасибо что все подробно объяснили! Буду пробовать
Сделаю по вашему образцу:)
В моем примере из поста 693, последняя ф.область "Счетчик =0" нестандартная, http://www.owen.ru/forum/showthread....l=1#post163913
Она нужна только для обнуления индикатора оставшегося времени если кнопка с реверсом бита, и в принципе эта ф.область не нужна
Уважаемый, Petera!
В примере (окно 693) на панели имеются комментарии- как это делается ?
Заранее спасибо
В. Д.
Petera, спасибо за подробный ответ. Теперь все понятно.
немного стыдно признаваться, но вот ответ на мои мучения с MOXA Uport 1150 - цитата из FAQ-ов панели СП270:
Надеюсь, кому-то поможет, мне вот помогло)Цитата:
Вопрос:
При загрузке проекта в панель на экране появляется соответствующая пиктограмма, но строка загрузки не бежит. Через некоторое время конфигуратор выдает ошибку Time-Out. Подключение произвожу через преобразователь Usb-Com специально купленным кабелем КС4 «без переходника». Что я не так делаю?
Ответ:
Если версия конфигуратора соответствует (см.выше), причина в системе защиты MS Windows.
Для работы через преобразователь Usb-Com, необходимо отключить Брандмауэр Windows или другой установленный на данном компьютере файрвол.
Отключение Брандмауэр: Пуск/Настройка/Панель управления/Брандмауэр Windows.
Добрался потестить. Отправляет запрос с неправильным порядком байт
Исправил, вот эта штука работоспособна (полный цикл тестирования не проводился):Код:const BYTES_PER_REG = 2;
const N_RETRIES = 3;
const RETRY_TIMEOUT = 1000; //ms
BOOL MWrites(int comID, int staID, int objType, int add1, int regs, void* pRegs) {
BYTE bSend[256], bRecieve[256], i;
WORD bBytesToSend = 0, bBytesRecieved = 65535;
BYTE nRetry = N_RETRIES; //Количество попыток повтора
BYTE offset_PSW_log;
int CrcSum;
switch (comID) {
case DOWNLOAD:
offset_PSW_log = 60;
break;
case PLC:
offset_PSW_log = 70;
break;
default:
return Writes(comID, staID, objType, add1, regs, pRegs); //don't know what to do
}
bSend[0] = staID;
switch (objType) {
case MODBUS_RTU_REGS_4X:
bSend[1] = 0x10;
break;
default:
return Writes(comID, staID, objType, add1, regs, pRegs); //don't know what to do
}
bSend[2] = HIBYTE(add1);
bSend[3] = LOBYTE(add1);
bSend[4] = HIBYTE(regs);
bSend[5] = LOBYTE(regs);
bSend[6] = regs * BYTES_PER_REG;
bBytesToSend = 7;
for (i=0; i<regs; i++) {
bSend[bBytesToSend] = HIBYTE(((WORD*)pRegs)[i]);
bBytesToSend++;
bSend[bBytesToSend] = LOBYTE(((WORD*)pRegs)[i]);
bBytesToSend++;
}
CrcSum = Crc(bSend, bBytesToSend);
bSend[bBytesToSend] = HIBYTE(CrcSum);
bSend[bBytesToSend + 1] = LOBYTE(CrcSum);
bBytesToSend += 2;
if (bBytesToSend > 256)
return FALSE;
Enter(comID);//Захватить порт PLC
do {
if (bBytesRecieved != 65535) { //Была ошибка связи
PSW[offset_PSW_log+1]++;
if (bBytesRecieved != 0) // Ошибка данных
PSW[offset_PSW_log+2]++;
//else //Таймаут
// PSW[offset_PSW_log+3]++;
}
Send(comID, bSend, bBytesToSend);//Отправить команду
bBytesRecieved = Receive(comID, bRecieve, 256, RETRY_TIMEOUT, 6);//Получить ответ (тайм-аут 1000мс)
} while ((bBytesRecieved == 0 || //Если данные получены
bRecieve[0] != staID || //От правильного устройства
bRecieve[1] != bSend[1] || //Правильной функцией
MAKEWORD(bRecieve[3], bRecieve[2]) != add1 || // По правильному адресу
MAKEWORD(bRecieve[5], bRecieve[4]) != regs || // Правильное количество регистров
Crc(bRecieve, bBytesRecieved) != 0 //Контрольная сумма в порядке
) && (--nRetry)>0); //... то всё ок, иначе отнимаем попытку и, если они остались, пытаемся ещё
Leave(comID);//Освободить порт
if (nRetry>0) { //Если попытки остались, значит, последняя попытка связи была успешной
PSW[offset_PSW_log]++;
return TRUE;
} else
return FALSE;
}
Коллеги. Возник такой вопрос:
Необходимо проверить введенное значение в числовое поле по нажатии кнопки "ENT" на цифровой клавиатуре определенному условию.
К примеру: Есть несколько цифровых полей ввода, их сумма не должна превышать определенного значения. При превышении должно выдаваться предупреждение.
Легко, но чур не на Си, я в нем не силен.
Сколько переменных в сумме и где предел хранится будет или он константа? Предупреждение какое хотите, окно или лампа или звук?
ЗЫ. Могу сделать на основе этих наработок
http://www.owen.ru/forum/showthread....l=1#post146080
http://www.owen.ru/forum/showthread....l=1#post146061 и посты ниже в той же теме
Предел константа, храниться в энергонезависимой памяти, к примеру PFW[256]. Количество переменных в сумме 7 (7 полей ввода).
В общем пока столкнулся с проблемой.
Если вводить значения с нуля, то работает вот так
:
Но когда пытаюсь редактировать значения, то нельзя ввести значения меньше расчетного, даже меньше того, что было в поле ввода
:
Только если редактируемое поле вначале обнулить, тогда можно вводить новые значения. Если так устраивает, то могу проект предъявить, если нет, тогда буду думать дальше
Интересное решение. ))
В принципе приемлемо. Только хотел несколько иного - попробую тоже что нибудь придумать.
Так как программирование под ОВЕН не основное занятие то все делается медленно ((
Как по нажатию одной кнопки упр. битом управлять 2 слейвами ?Переадресация ,вроде как может только читать (4х) ,а мне нужно писать бит в 2устройства????Спасибо
Может через функциональную кнопку сделать?
Спасибо ,а как время на панели установить нужное ,дату показывает верно ,а веся не то .
Анатолий, дополнение к предыдущему вопросу.
Для реализации в ф.кнопке действия обычной кнопки "Мгновенно включить" нужно прописать функции для бит для двух событий ф.кнопки
1. Событие "Pressing" -возникает однократно в момент нажатия кнопки
Вложение 17161
2. Событие "Releasing" -возникает однократно в момент отпускания кнопки
Вложение 17162
Для коррекции времени и даты нужно вызывать экран 60002 обычной кнопкой "Переход на экран"
Не совсем понятно -функциональная кнопка ,функция копирования регистра .Почему в источнике и приемнике стоит 4х(3х) ,если читается содержимое из одного регистра 1 устройства и записывается в другой регистр второго устройства ????:confused:
НО значения одного перепишутся во второй ??путаница между адресами и кодами операциями у меня в голове :D
Спасибо ,понял .успокоили :o
Спасибо
Буду смотреть
Помогите пожалуйста, Панель СП270(мастер)9600,четность отсутствует,2 стоп бита, формат данных 8 бит. ПЧ слейв, тоже самое.Взаимодействуют хорошо, идет чтение, запись до включения модуляции, после ловит потерю связи.Что может быть причиной?