Segnetics

Вернуться   Segnetics > Форум Segnetics > Вопросы о Trim5

Вопросы о Trim5 Работа и применение контроллеров с сенсорной панелью Trim5.

Ответ
 
Опции темы Поиск в этой теме
Старый 22.10.2016, 21:44   #1
santer
Новичок
 
Регистрация: Sep 2014
Сообщения: 6
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию Trim5 и WEB

Доброго
Вопрос существует ли для Trim5 Web интерфейс - хотя бы тем же методом что для SMH?
santer вне форума   Ответить с цитированием
Старый 23.10.2016, 14:37   #2
Gromov
Уволен из Сегнетикс
 
Регистрация: Nov 2015
Адрес: CПб/ВЛГ
Сообщения: 0
Благодарил(а): 0 раз(а)
Поблагодарили: 1 раз в 1 сообщении
По умолчанию Ответ: Trim5 и WEB

Trim5 поддерживает SMConnect и у него есть SMConfig - это такая специальная "веб морда", на которую можно попасть, если ваш трим подключен к локальной сети по ethernet. Набирайте в браузере его ip адрес и попадаете (как на роутер).


__________________
В сегнетиксе не работаю с самого начала 2019 года.
Gromov вне форума   Ответить с цитированием
Старый 24.10.2016, 11:15   #3
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 074
Благодарил(а): 15 раз(а)
Поблагодарили: 660 раз(а) в 604 сообщениях
По умолчанию Ответ: Trim5 и WEB

Цитата:
Сообщение от santer Посмотреть сообщение
Доброго
Вопрос существует ли для Trim5 Web интерфейс - хотя бы тем же методом что для SMH?
Всё как у SMH-2Gi, никаких отличий.


__________________
Программа делает то что написал программист, а не то что он хотел.

Добро всегда побеждает зло. Кто победил - тот и добрый.
Arsie вне форума   Ответить с цитированием
Старый 27.10.2016, 17:12   #4
santer
Новичок
 
Регистрация: Sep 2014
Сообщения: 6
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию Ответ: Trim5 и WEB

Спасибо - попробуем
santer вне форума   Ответить с цитированием
Старый 04.09.2018, 10:12   #5
Alexsis
Senior Member
 
Регистрация: Dec 2013
Адрес: Краснодар
Сообщения: 187
Благодарил(а): 6 раз(а)
Поблагодарили: 1 раз в 1 сообщении
По умолчанию Ответ: Trim5 и WEB

Доброго всем!!!

Если же все так как на 2Gi , то почему не запускается проект на базе

http://forum.segnetics.ru/showpost.p...2&postcount=51

/ip/Data2Gi.php вообще пишет аракадабру какую-то вместо чтения load_map

Знаю что я не умный . Так что прошу поделиться знаниями с гуру
Alexsis вне форума   Ответить с цитированием
Старый 04.09.2018, 11:35   #6
Gromov
Уволен из Сегнетикс
 
Регистрация: Nov 2015
Адрес: CПб/ВЛГ
Сообщения: 0
Благодарил(а): 0 раз(а)
Поблагодарили: 1 раз в 1 сообщении
По умолчанию Ответ: Trim5 и WEB

Процессоры разные. Разные версии системы команд. Проще говоря, надо перекомпилировать под нужную платформу.


__________________
В сегнетиксе не работаю с самого начала 2019 года.
Gromov вне форума   Ответить с цитированием
Старый 04.09.2018, 12:40   #7
Alexsis
Senior Member
 
Регистрация: Dec 2013
Адрес: Краснодар
Сообщения: 187
Благодарил(а): 6 раз(а)
Поблагодарили: 1 раз в 1 сообщении
По умолчанию Ответ: Trim5 и WEB

Цитата:
Сообщение от Gromov Посмотреть сообщение
Проще говоря, надо перекомпилировать под нужную платформу.
Етить-колотить Помогите люди-умные кто умеет так делать т.к. 2Gi канул в лету... а заменять его чем-то надо... вот TRIM5
Alexsis вне форума   Ответить с цитированием
Старый 05.09.2018, 01:52   #8
ATS
Senior Member
 
Регистрация: Aug 2013
Сообщения: 3 784
Благодарил(а): 12 раз(а)
Поблагодарили: 194 раз(а) в 190 сообщениях
По умолчанию Ответ: Trim5 и WEB

Цитата:
Сообщение от Gromov Посмотреть сообщение
Процессоры разные. Разные версии системы команд. Проще говоря, надо перекомпилировать под нужную платформу.
Это про PHP? Сложно осознать глубину Ваших глубин.

Цитата:
Сообщение от Alexsis Посмотреть сообщение
/ip/Data2Gi.php вообще пишет аракадабру какую-то вместо чтения load_map
А какую можно уточнить?

P.S. Мое общение с Сегнетиксами закончилось на 2Gi.
ATS вне форума   Ответить с цитированием
Старый 05.09.2018, 09:30   #9
Alexsis
Senior Member
 
Регистрация: Dec 2013
Адрес: Краснодар
Сообщения: 187
Благодарил(а): 6 раз(а)
Поблагодарили: 1 раз в 1 сообщении
По умолчанию Ответ: Trim5 и WEB

Цитата:
Сообщение от ATS Посмотреть сообщение
Это про PHP? Сложно осознать глубину Ваших глубин.

А какую можно уточнить?

P.S. Мое общение с Сегнетиксами закончилось на 2Gi.
Код:
AdIpPLC = "127.0.0.1"; if(!$this->ParamVar()) { $this->PortIpPLC = 502; $this->Unit = 1; } srand( (float) microtime()*1000000 ); } // public function SetAdIpPLC( $Ip = "127.0.0.1") { $this->AdIpPLC = $Ip;	$this->ModConn(); } // public function ModConn() { $this->Fp = @fsockopen( "$this->AdIpPLC", $this->PortIpPLC, $errno, $errstr, 5 ) ; // or die("������ ���������� � ������� $this->AdIpPLC:$this->PortIpPLC"); } // public function ModClose() { if ( $this->Fp) @fclose($this->Fp); } private function WriteSocket( $OutBuf ) { fwrite( $this->Fp, implode( "", $OutBuf )); return true; } private function ReadSocket () { while ( ! $InBuf = fgetc($this->Fp) ); $status = socket_get_status($this->Fp); $InBuf .= fread($this->Fp, $status["unread_bytes"]); /* if ( $this->Debug ) { for ( $i=0; $i"; } } */ return $InBuf; } private function WordToBytes( $word = 0 ) { $word = $word &0xFFFF; return array( chr(($word & 0xFF)), chr(($word >> 8) & 0xFF)); } private function BytesToWord( $lbyte = 0, $rbyte = 0 ) { return( ord($lbyte) * 256 + ord($rbyte) ); } private function WordToDouble( $lword, $rword) { return ( ($lword & 0xFFFF) << 16) + (($rword & 0xFFFF) ); } private function FloatToWord($value) { // get float binary string $float = pack("f", $value); // set 32-bit unsigned integer of the float $w = unpack("L", $float); return $w[1]; } private function WordToFloat( $lword, $rword) { // get unsigned long $ulong = pack("L", $this->WordToDouble( $lword, $rword)); // set float $float = unpack("f", $ulong); return $float[1]; } private function DoubleToSgnInt($value) { if ((0x80000000 & $value) != 0) { return -(0x7FFFFFFF & ~$value)-1; } else { return (0x7FFFFFFF & $value); } } private function WordToSgnInt($value) { if ((0x8000 & $value) != 0) { return -(0x7FFF & ~$value)-1; } else { return (0x7FFF & $value); } } // --------------------------------------------------- // ������ ���� ���������� 2Gi (XML) // --------------------------------------------------- public function PlcAllVarToXML() { $strxml = "\r\n"; foreach(array_keys($this->VarPrm) as $line) $strxml .= "<" . $line . ">" . $this->PlcVarRead( $line) . "\r\n" ; $strxml .=""; return $strxml; } // --------------------------------------------------- // ������ ���� ���������� 2Gi (������) // --------------------------------------------------- public function PlcAllVarRead() { foreach(array_keys($this->VarPrm) as $line) $tmparr[$line] = $this->PlcVarRead( $line); return $tmparr; } // --------------------------------------------------- // ������ �� ���������� 2Gi // --------------------------------------------------- public function PlcVarRead( $varname="") { return $this->ReadRegData( $this->VarPrm[$varname][1], $this->VarPrm[$varname][2], $this->VarPrm[$varname][3]); } // ----------------------------------------------- // ������ �� ���������� 2Gi // ----------------------------------------------- public function PlcVarWrite($varname="", $data=0) { return $this->WriteRegData( $this->VarPrm[$varname][1], $this->VarPrm[$varname][2], $this->VarPrm[$varname][3], $data ); } // --------------------------------------------------- // ������ ��������� // --------------------------------------------------- public function ReadRegData( $Adr=2, $Reg=2, $Type=2) { if ( $Reg < 2 ) { $Type=0; } $sbuf = array ( 0=>chr(0), chr(0), chr(0), chr(0), chr(0), 5=>chr(6), 6=>chr($this->Unit), 7=>chr(4)) ; list( $sbuf[8], $sbuf[9] ) = $this->WordToBytes( $Adr ); //��� ������� if ( $Reg == 3 ) $sbuf[7] = chr(3); if ( $Reg == 2 ) $sbuf[7] = chr(4); if ( $Reg == 1 ) $sbuf[7] = chr(1); if ( $Reg == 0 ) $sbuf[7] = chr(2);	$sbuf[10] = chr(0); if ( $Type < 2 ) $sbuf[11] = chr(1); else $sbuf[11] = chr(2); $this->WriteSocket($sbuf); $rbuf = $this->ReadSocket(); if ( $rbuf[7] != $sbuf[7] ) { // ��� ������� ������ //	echo "������ ������ ������
\n"; return False; } // $nbByte = ord( $rbuf[8] ); // // ��� �������	/* for ( $i=0; $i"; } echo "Reg =". $Reg."
"; echo "Type =". $Type."

"; */ // ����� ������� switch ( $Type) {	case "0": return ord( $rbuf[9] ); break;	case "1": return $this->WordToSgnInt($this->BytesToWord($rbuf[9],$rbuf[10])); break; case "2": return $this->DoubleToSgnInt($this->WordToDouble($this->BytesToWord($rbuf[11],$rbuf[12]), $this->BytesToWord($rbuf[9],$rbuf[10]))); break; case "3": return $this->WordToFloat( $this->BytesToWord($rbuf[11],$rbuf[12]), $this->BytesToWord($rbuf[9],$rbuf[10])); break; default: return False; } }	// ----------------------------------------------- // ������ ��������� // ----------------------------------------------- public function WriteRegData( $Adr=2, $Reg=3, $Type=2, $WrData=0) { if ( $Reg == 1 ) { $Type=0; $CodeFunction = 5; $BQnty = 6; } else if ( $Reg == 3 ) { $CodeFunction = 16; $BQnty = 9; if ($Type > 1) {$BQnty = 11;} } else return false; $sbuf[0] = chr(0); $sbuf[1] = chr(0); $sbuf[2] = chr(0); $sbuf[3] = chr(0); list( $sbuf[5], $sbuf[4] ) = $this->WordToBytes($BQnty); //���-�� ���� $sbuf[6] = chr( $this->Unit ); $sbuf[7] = chr( $CodeFunction ); list( $sbuf[9], $sbuf[8] ) = $this->WordToBytes((int)$Adr); // ����� ������ if ( $Reg == 1 ) { if ( $WrData != 0 ) { $sbuf[10] = chr(255); } else { $sbuf[10] = chr(0); } $sbuf[11] = chr(0);	} else if ($Type == 1){ $sbuf[10] = chr(0); $sbuf[11] = chr(1); $sbuf[12] = chr(2); list( $sbuf[14], $sbuf[13]) = $this->WordToBytes( $WrData); } else { // ���� ������ ��� Long !!! $sbuf[10] = chr(0); $sbuf[11] = chr(2); $sbuf[12] = chr(4);	if ($Type == 3) $WrData = $this->FloatToWord($WrData); list( $sbuf[14], $sbuf[13] ) = $this->WordToBytes($WrData & 0xFFFF); list( $sbuf[16], $sbuf[15] ) = $this->WordToBytes(($WrData >>16) & 0xFFFF);	}	// ��� ������� /* echo "Write
"; for ($i=0;$i"; } echo "
"; */ // �����	$this->WriteSocket($sbuf); $rbuf = $this->ReadSocket(); if ( $rbuf[7] != $sbuf[7] ) { // ��� ������� ������ //	echo "������ ������ ������
\n"; return False; }	return True ; } // ----------------------------------------------- // ��������� ���������� // ----------------------------------------------- private function ParamVar() {	$curr = "/projects/load_files.map"; if(!file_exists($curr)) $curr = "load_files.map"; if(file_exists($curr)) { $all = file_get_contents($curr); $ini = explode("\n", $all); $Sreg=null; $all =null; foreach($ini as $line) if(strncmp($line, "[Inst", 5) == 0) $Sreg=0; else if(strncmp($line, "[Coil", 5) == 0) $Sreg=1; else	if(strncmp($line, "[Inre", 5) == 0) $Sreg=2; else if(strncmp($line, "[Hold", 5) == 0) $Sreg=3; else if(strncmp($line, "var", 3) == 0) { $curr = explode("=", $line); $num = explode(",", ",". $curr[1]); //echo $num[5] . "," . $num[1] . "," . $Sreg."," . $num[3] . "
"; // ��� �������� $curr=trim($num[5]); $all[$curr][1]=$num[1]; $all[$curr] [2]=$Sreg; $all[$curr] [3]=$num[3]; } else if(strncmp($line, "Adr", 3) == 0) { $num = explode("=", $line); //����� Slave } else if(strncmp($line, "If", 2) == 0) { if(strpos($line, "=5,")) { $port = explode(":", $line); //���� MB/TCP } } } else { //echo "��� �����. ��������� �� ������."; return False; } $this->PortIpPLC = $port[1]; $this->Unit = $num[1] ; $this->VarPrm = $all; return True; }	} ?>
Так точно Капитан!!

Последний раз редактировалось Alexsis, 05.09.2018 в 09:47
Alexsis вне форума   Ответить с цитированием
Старый 05.09.2018, 09:39   #10
Gromov
Уволен из Сегнетикс
 
Регистрация: Nov 2015
Адрес: CПб/ВЛГ
Сообщения: 0
Благодарил(а): 0 раз(а)
Поблагодарили: 1 раз в 1 сообщении
По умолчанию Ответ: Trim5 и WEB

Пожалуйста, сделайте это в нормальном виде. Используйте PastCode или хотя бы на форуме через теги кода. Ну так же невозможно читать. =(


__________________
В сегнетиксе не работаю с самого начала 2019 года.
Gromov вне форума   Ответить с цитированием
Старый 06.09.2018, 00:17   #11
ATS
Senior Member
 
Регистрация: Aug 2013
Сообщения: 3 784
Благодарил(а): 12 раз(а)
Поблагодарили: 194 раз(а) в 190 сообщениях
По умолчанию Ответ: Trim5 и WEB

Цитата:
Сообщение от Alexsis Посмотреть сообщение
Код:
AdIpPLC = "127.0.0.1"; if(!$this->ParamVar()) { $this->PortIpPLC = 502; $this->Unit = 1; }...
Так точно Капитан!!
Интересно девки пляшут...

Попробуйте вторую строку в файле Data2Gi.php
Код:
require_once dirname(__FILE__) . '/class_2GiMbusTcp.php';
поменять на
Код:
require("class_2GiMbusTcp.php");

Добавлено через 56 минут

Обновил
ATS вне форума   Ответить с цитированием
Ответ

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать свои сообщения

BB code is Вкл.
[IMG] код Вкл.
HTML код Выкл.



Часовой пояс GMT +4, время: 03:05.


Версия vBulletin: 3.8.7
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Segnetics 2005 - 2024