Так и на Ардуино такой преобразователь можно сделать , а потом зашить в МК , если Ардуино само не устраивает.цена вопроса мизирная.
Вид для печати
Так и на Ардуино такой преобразователь можно сделать , а потом зашить в МК , если Ардуино само не устраивает.цена вопроса мизирная.
Уважаемый rovki, можно поподробнее про преобразование на Ардуине?
Так же столкнулся с этим весовым индикатором и не хватает знаний для опроса данного прибора.
Контроллер ПЛК 160.
Есть RS-485 (Modbus RTU) RS-232 занят под HMI. Да и не поможет он. Всё равно протокол Modbus или Owen. Проект уже на стадии завершения и тут этот индикатор...
Да ещё и на удалении от ПЛК установлен (60 м.).
Вот такая беда...
Можно чего придумать? Или лучше другой купить?
А зачем для ПЛК160 какая-либо прокладка?
Это в ПР нет возможности читать порты, а в ПЛК запросто! Используйте библиотеку SysLibCom и читайте строку из индикатора, разбирайте ее на части, как в моем примере на Си
ЗЫ.
Примеры работы с портом ПЛК с помощью SysLibCom есть на диске ПЛК
По существу темы хочу сообщить, что способ с макросом по запросу не заработал (пост #7), наверно я не правильно понял описание работы терминала. По этому было принято решение выполнять непрерывное чтение из CAS CI-1560
По этому макрос в панели претерпел изменения
параметры работы макроса задаются в секции #defineКод:#define Alarm 300 // Number PSB from error flag
#define adrPR 16 // Addres PR200
#define adrRegPR 512 // Addres register "Weight"
WORD timeOut;
WORD status = 0;
BYTE byArr[44] = {' '};
char *strWeight = " 0";
int i = 0;
static short int Weight = 0;
//---- change timeout port of PLC (only for ModBus)
Read(HMI_LOCAL_MCH, 0, TYPE_PFW, 38, 0, TYPE_WORD, &timeOut);
if(timeOut == 1000) Write(HMI_LOCAL_MCH, 0, TYPE_PFW, 38, 0, TYPE_WORD, 200);
//----- Get string (22 bytes) from CAS1560
while(status != 22 && i <= 3) {
status = Receive(DOWNLOAD, byArr, 22, 1000, 100);
i++; //next try
PSW[500] = status; //debug only !!
PSW[501] = i; //debug only !!
}
//--- if three attempts were unsuccessful, set error flag for three seconds
if (i >= 3 && status != 22) {
SetPSB(Alarm);
Delay(3000);
ResetPSB(Alarm);
}
else if (byArr[20] =='\r' && byArr[21] =='\n') {
memcpy(strWeight, byArr +10, 7); //extract string weight
Weight = atoi(strWeight); //convert string to number
if (byArr[9] == '-') Weight = Weight * (-1);
//----
PSW[314] = Weight; //debug only !!
memcpy(&PSW[300], byArr, 22); //debug only !!
}
Leave(DOWNLOAD); //close port DOWNLOAD
//Delay(100);
//--- write weight in the register PR200
Write(PLC, adrPR, MODBUS_RTU_REG_4X, adrRegPR, 0, TYPE_WORD, Weight);
секцияКод:#define Alarm 300 // Number PSB from error flag
#define adrPR 16 // Addres PR200
#define adrRegPR 512 // Addres register "Weight"
срабатывает только один раз после загрузки в панельКод://---- change timeout port of PLC (only for ModBus)
Read(HMI_LOCAL_MCH, 0, TYPE_PFW, 38, 0, TYPE_WORD, &timeOut);
if(timeOut == 1000) Write(HMI_LOCAL_MCH, 0, TYPE_PFW, 38, 0, TYPE_WORD, 200);
Ее назначение не связанно с CAS1560, цель уменьшить тайм аут обмена для порта PLC с 1000 мс до 200. Это способ убрать тормоза при обрыве связи со слейвом
В проекте для ПР
Т.к. число передаваемое в ПР будет 16битным целым со знаком, а ПР не умеет делать арифметику с такими числами, то полученное число нужно преобразовать в число с плавающей запятой.(Макрос 16_TO_FL)
Проект в панели похож на тот, что в посте #7
Вложение 42851
Видео отчет работы оборудования в комплексе прилагается
ЗЫ
В архиве кроме того имеется
Вложение 42883
-Дополнительно для проверки качества чтения данных из CAS CI-1560 сделал проект для панели с обилием динамических элементов, включая игру Tic-Tac-Toe (Крестики - Нолики)
Вложение 42884
Вложение 42885
Tic-Tac-Toe:
Здравствуйте! Подскажите по поводу считывания показаний с весов. Имеется:
-ПР200 с RS485;
-ИП320;
-Весы Масса-К tb-s-32.2-a1
В инструкции к весам написано следующее:
Вложение 49409
Вопрос: смогу ли я увидеть показания с этих весов в ПР200??
И если нет, то есть мысль купить модуль ввода сигналов тензодатчиков (ОВЕН) и подключиться напрямую к весовому датчику. Кто нибудь так делал?
Jolly Ответ: Не сможете, ПР понимает только Modbus протокол
Смысл в весах в том, что у них есть поверка, а если вы будете цепляться напрямую к датчикам, то поверка весов становится недействительна и вообще, зачем тогда весы, купите просто платформу без преобразователя и модуль тензодатчиков, но в этом случае вам придется заморочиться с поверкой системы.
Просто приходится делать из того что уже есть. А поверка в моем случае не очень важна. Вся эта система для внутреннего пользования. Погрешность взвешивания +-лапоть. Вот так
Как это:
согласуется с этим:Цитата:
приходится делать из того что уже есть.
Все равно что-то надо покупать. На ПР200 аналоговые входы есть? Можете купить преобразователь тензо - 4-20мА так будет совсем просто.Цитата:
есть мысль купить модуль ввода сигналов тензодатчиков (ОВЕН)