Вот именно передаёт номер контакта и его состояние: cn1_true (т.е. контакт первый замкнут) или cn1_false (разомкнут)
Соединение он поддерживает по IP на порту 10000. Как-то так.
Модератор: immortal
Вот именно передаёт номер контакта и его состояние: cn1_true (т.е. контакт первый замкнут) или cn1_false (разомкнут)
Вот так сработало:
Код: Выделить всё
function dbInstall($data='') {
Вот и нужно вписывать этот сокет 192.168.1.111:10000, а не localhost:80.
Кстати, у него есть ещё порты RS232, RS232/RS485, но тогда нужен преобразователь. Хотя написано, что они только для конфигурации и обновления MiniOs
Код: Выделить всё
function dbInstall($data='') {
Код: Выделить всё
// Получаем все каналы из БД
$channels = SQLSelect("SELECT * FROM Channels WHERE DEVICE_ID=($i + 1)");
$cnt = count($channels);
for($j = 0; $j < $cnt; $j++)
{
$chan = $channels[$j];
if($chan['LINKED_OBJECT']!='' && $chan['LINKED_PROPERTY']!='')
{
if(preg_match('\'^GET\\([0-9]{1,}\\)$\'', $chan['VALUE']))
{
preg_match('\'[0-9]{1,}\'', $chan['VALUE'], $val);
$pos = strpos($read_buf, $chan['TITLE']);
if(!($pos === false))
{
$code = substr($read_buf,5,20);
setGlobal($chan['LINKED_OBJECT'].'.'.$chan['LINKED_PROPERTY'], $code);
}
}
Я правильно понимаю, что железка присылает cn0_true или cn199_false в зависимости от того, какой контакт замкнут/разомкнут?Lerych писал(а): ↑Вс дек 02, 2018 11:01 pmМужики помогите с кодом!
Имеем такой код:т.е. записываем в свойства объекта вырезанную часть строки из буфера. В коде выше вырезаем из буфера с 5-ой позиции, 20-ть символов. Но эти переменные могут быть различными.Код: Выделить всё
// Получаем все каналы из БД $channels = SQLSelect("SELECT * FROM Channels WHERE DEVICE_ID=($i + 1)"); $cnt = count($channels); for($j = 0; $j < $cnt; $j++) { $chan = $channels[$j]; if($chan['LINKED_OBJECT']!='' && $chan['LINKED_PROPERTY']!='') { if(preg_match('\'^GET\\([0-9]{1,}\\)$\'', $chan['VALUE'])) { preg_match('\'[0-9]{1,}\'', $chan['VALUE'], $val); $pos = strpos($read_buf, $chan['TITLE']); if(!($pos === false)) { $code = substr($read_buf,5,20); setGlobal($chan['LINKED_OBJECT'].'.'.$chan['LINKED_PROPERTY'], $code); } }
Надо вместо 5 подставлять $chan['TITLE'], а вместо 20: $read_buf-$chan['TITLE'].
Помогите с синтаксисом этого действия.
Код: Выделить всё
$obj_name=$plc[0]; // При условии что объекты будут называться cn0, если нужно как-то по другому, то просто добавить нужное
if ($plc[1]=='true') {
sg( $obj_name. '.status',1);
} else {
sg($obj_name . '.status',0);
}
Код: Выделить всё
$obj=getObject($obj_name);
if ($obj==0) {
addClassObject('PLC', $obj_name); //Вместо PLC тут указать свой класс объектов
}