melky, благодарю за разъяснение. Проблема в том, что в конфигураторе на ТМ5103 настраиваются всего три параметра: сетевой адрес прибора, скорость передачи и номер СОМ-порта, и больше ни чего.
Вид для печати
melky, благодарю за разъяснение. Проблема в том, что в конфигураторе на ТМ5103 настраиваются всего три параметра: сетевой адрес прибора, скорость передачи и номер СОМ-порта, и больше ни чего.
с чет/нечет игрались?
Конфигуратор может менять параметры при поиске прибора
EFrol, то есть, получается, что связь между ТМ5103 и конфигуратором производится не через Modbus?
melky, чет-нечет это в ОРС?
1. перебрать все настройки порта, которые вы не знаете.
2. Ну и фокус покус может быть с паролем, но это только производитель ответит. В интернетах указано везде что там Modbus RTU, как соотносится пароль ни слова.
Прибор точно не запаролен. Сейчас собаку выведу, вернусь и попробую поперебирать настройки порта, кроме скорости передачи и номера прибора. Сейчас сетевые настройки такие.
Конфигурацию Реле покажите, что там?
Конфигурация реле
состав папок Конфигуратора покажьте :)
Очень похож на старый элемеровский протокол https://owen.ru/forum/showthread.php...l=1#post418270
Есть инструкция на конфигуратор, сейчас ее почитаю
Типа старые приборы из загашника?
Да, старые приборы из загашника, прочитал инструкцию на конфигуратор, ни слова о протоколе обмена
На сайте Элемер пишут, что этот конфигуратор для приборов выпущенных до середины 2013.
Да, все верно, я писал, что мой прибор ТМ5103 выпуска 2006 года, а ТМ5122 - 2010 года.
Тогда ваш макрос от трм вы не сможете использовать, только писать опрос по старому протоколу.
Вот и получается, что придется параллельно подключить еще один преобразователь для прослушивания обмена между конфигуратором и прибором.
Анализ запросов и ответов даст понимание, как писать макрос для СП3хх.
Сам я макрос не напишу... Нашел в папке по ТМ5103 конфигуратор по Modbus, сейчас попробую его установить
Если вы разберете запросы и ответы, а главное контрольную сумму. Думаю найдете кого-то, кто в макросах панелей понимает.
Лично было бы интересно разобрать протокол для драйвера Scada, но без доступа к приборам это анриал.
Завтра-послезавтра притащу со склада ТМ5122 и попробую его еще поподключать
EFrol, подключить параллельно еще один ТМ5103?
Напишите! Куда Вы денетесь?! Вот пример реализации ОВЕН-протокола для СП3хх:
В глобальный макрос:
в обычный:Код:BYTE in[64], out[16];
WORD inLen;
BYTE Regs[16];
void query(BYTE *out, WORD outLen){
inLen = 0;
Enter(DOWNLOAD);
if(Send(DOWNLOAD, out, outLen)){
inLen = Receive(DOWNLOAD, in, 64, 500, 10);
}
Leave(DOWNLOAD);
}
WORD Owen_CRC(BYTE *buf, BYTE len){
BYTE iByte, iBit, bByte;
WORD ret = 0;
for(iByte = 0; iByte < len; iByte++){
bByte = buf[iByte];
for(iBit = 0; iBit < 8; iBit++){
if(((HIBYTE(ret) ^ bByte) & 0x80) > 0){
ret <<= 1; ret ^= 0x8F57;
}else ret <<= 1;
bByte <<= 1;
}
}
return ret;
}
BYTE Owen_Query(WORD Addr, WORD Hash, BYTE Count){
BYTE UnPack[22], Pack[46], iByte;
WORD CRC;
UnPack[0] = HIBYTE(Addr << 5);
UnPack[1] = LOBYTE(Addr << 5) | (Count > 0 ? 0x00 : 0x10) | Count;
UnPack[2] = HIBYTE(Hash);
UnPack[3] = LOBYTE(Hash);
for(iByte = 0; iByte < Count; iByte++) UnPack[iByte+4] = out[iByte];
CRC = Owen_CRC(UnPack, Count + 4);
UnPack[Count+4] = HIBYTE(CRC);
UnPack[Count+5] = LOBYTE(CRC);
Pack[0] = '#';
for(iByte = 0; iByte < (Count + 6); iByte++){
Pack[iByte*2+1] = ((UnPack[iByte] & 0xF0) >> 4) + 0x47;
Pack[iByte*2+2] = (UnPack[iByte] & 0x0F) + 0x47;
}
Pack[iByte*2+1] = 0x0D;
query(Pack, iByte*2+2);
if(inLen > 6){
if(in[0] != 0x23 || in[inLen-1] != 0x0D || (inLen % 2) != 0) return -2;
for(iByte = 0; iByte < (inLen - 2) / 2; iByte++){
UnPack[iByte] = in[iByte*2+1] - 0x47;
UnPack[iByte] <<= 4;
UnPack[iByte] |= in[iByte*2+2] - 0x47;
}
CRC = UnPack[iByte-2] << 8 | UnPack[iByte-1];
if(Owen_CRC(UnPack, iByte-2) != CRC) return -3;
if(UnPack[0] != HIBYTE(Addr << 5) | (UnPack[1] & 0xE0) != LOBYTE(Addr << 5)) return -4;
if((UnPack[1] & 0x10) == (Count == 0 ? 0x10: 0x00)) return -5;
if(UnPack[2] == 0x02 && UnPack[3] == 0x33) return UnPack[4];
inLen = iByte - 6;
for(iByte = 0; iByte < inLen; iByte++) in[iByte] = UnPack[iByte+4];
return 0;
}else return -1;
}
float readF24(){
DWORD dw = MAKEDWORD(MAKEWORD(0, in[2]), MAKEWORD(in[1], in[0]));
return DWord_2_Float(dw);
}
float readFloat(){
DWORD dw = MAKEDWORD(MAKEWORD(in[3], in[2]), MAKEWORD(in[1], in[0]));
return DWord_2_Float(dw);
}
void writeFloatPSW(WORD addr, float value){
DWORD dw;
dw = Float_2_DWord(value);
PSW[addr] = LOWORD(dw);
PSW[addr+1] = HIWORD(dw);
}
Тщательно изучите и напишите свой!!!Код:if(Owen_Query(120, 0x8784, 0) == 0) writeFloatPSW(450, readF24());
Благодарю за макрос и веру в меня! Сейчас скопирую макрос и подумаю над ним. Свой макрос я почти что понял )
Один преобразователь между конфигуратором и прибором.
Второй преобразователь в другой USB (новый COM-порт) для прослушивающей программы, например, Terminal
Включаете сохранение лога в текстовый файл и запускаете чтение конфигурации в конфигураторе. В лог запишется весь обмен.
С этим есть проблемка, у меня на компе всего один USB-порт, но это решаемо, найду другой комп
Хаб однако есть, нужно поискать, спасибо за подсказку! )
Это что за чудо такое? И 500 рублей у Вас нет?
https://www.onlinetrade.ru/catalogue...25BE%25D1%2580
https://market.yandex.ru/search?text...YAIPEnLw%2C%2C
Сергей0308, вот оно мое чудо с одним USB-портом на фотке
У меня тоже такой есть! Не очень давно аккумулятор ему поменял, старый вздулся!
Тогда уж скажите правду, что у него вообще нет USB портов, в смысле порт у док-станции в виде клавы, а у планшета их нет!
Я лично никогда не планировал на нём что-то делать, просто дойти до ПР и залить проект!
Вы имеете ввиду питание к док-станции надо было подвести?
Если это, то мне это особых неудобств не доставляет, но мне кажется было бы удобней, лично для меня, если бы питание подходило к док-станции, а не к планшету, чтобы лишний раз шнурок питания не дёргать туда-сюда!
Я про то, что он находясь на зарядке может разрядиться в нулину и отключиться )
Это наверно глюк какой-то! У меня были проблемы, в смысле, не хотел заряжаться и я заметил что корпус раздулся(деформировался), короче, после замены аккумулятора проблем с питанием вроде не было. звук пропал давно, я так подозреваю при раздутии аккумулятора что-то повредилось, пользуюсь, если надо, или блютуз- гарнитурой или USB-гарнитурой(наушниками).