Segnetics

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

Вопросы о SMH2010 Работа и применение контроллеров SMH2010A, SMH2010B и SMH2010C.

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
Старый 02.03.2018, 10:14   #1
Roll4Repairs
Member
 
Регистрация: Jun 2017
Сообщения: 56
Благодарил(а): 7 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию Энергонезависимая память

Возникло несколько вопросов по эксплуатации энергонезависимой памяти:

1). Как считается количество записей в ЭП? Допустим у меня используется 2 переменные, в первую я сделал 1 запись, а во вторую 99.999 записей. Ресурс ЭП исчерпан или нет?
2). Заказчик хочет хранить уставку температуры и состояние автоматического режима Включен/Выключен (чтобы установка в случае временной пропажи питания сразу продолжила работу). В среднем каждое из этих значений будет меняться 10 раз в день. Если это имеет значение - есть ещё 11 энергонезависимых переменных, но они недоступны пользователю и исключительно предназначены для сервисного режима и практически не будут изменяться во время эксплуатации. Обещанный срок работы изделия - 15 лет. Если я правильно понимаю, ЭП хватит для выполнения лишь одного из требований?
3). Что конкретно произойдёт, когда ресурс ЭП будет исчерпан? Все энергонезависимые переменные, которые хранили значения продолжат их хранить, но изменения их значений будут теряться после пропажи питания?
4). Можно ли отследить факт того, что ресурс ЭП был исчерпан? (Чтобы вывести предупреждение на экран)
5). Может ли у пульта производиться замена ЭП без необходимости перепрошивать пользовательскую программу?

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

Очень рекомендую вам прочитать эту статью на гиктаймс. Она много рассказывает про еепром и особенности записи туда.

3) Начинаются проблемы чтения и/или записи. Например, вы считываете какие-то нереальные цифры, далеко выходящие за предел ваших рабочих значений. Или не можете произвести запись - считывается всегда одно и то же число.

4) Из третьего пункта выходит четвёртый. Если вы добавите простенькую схему анализа того, что вы записали последний раз и что читается из каждой ячейки памяти - можно судить о том, что всё хорошо. И как только появится хотя бы одна ошибка чтения - стоит озадачитсья сменой памяти

5) Заменить отдельно чип памяти можно. Проект хранится во флэш-памяти самого процессора. Однако, нужно учитывать, что все сохранённые значения eeprom будут потеряны и придётся учитывать, что при запуске с новым чипом памяти будет прочитан "мусор". Придётся перезаписать все уставки.


__________________
В сегнетиксе не работаю с самого начала 2019 года.
Gromov вне форума   Ответить с цитированием
Благодарность от:
Старый 05.03.2018, 13:34   #3
Roll4Repairs
Member
 
Регистрация: Jun 2017
Сообщения: 56
Благодарил(а): 7 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию Ответ: Энергонезависимая память

Если я правильно понял статью - ответ на мой первый вопрос следующий: у каждой ячейки памяти свой ограниченный ресурс перезаписи, независимый от других ячеек.

Теперь конкретика:
Допустим если я буду хранить переменную в блоке ARRAY длинной 1, то я смогу записать эту переменную 100.000 раз. Если я сделаю длину данного блока 10, и буду сдвигаться при каждой новой записи на новую ячейку памяти(дойдя до последнего значения, переместиться в начало массива и начать заново по нему проход, затирая старые значения новыми), то я смогу эту же переменную записать 1.000.000 раз. Правда для этого ещё понадобится хранить текущее положение в массиве в отдельном блоке, чтобы при перезапуске контроллера считывать корректное значение.

Так или не так?
Roll4Repairs вне форума   Ответить с цитированием
Старый 05.03.2018, 13:57   #4
Gromov
Уволен из Сегнетикс
 
Регистрация: Nov 2015
Адрес: CПб/ВЛГ
Сообщения: 0
Благодарил(а): 0 раз(а)
Поблагодарили: 1 раз в 1 сообщении
По умолчанию Ответ: Энергонезависимая память

Экспериментов я не проводил, но вроде бы, дело именно так обстоит.


__________________
В сегнетиксе не работаю с самого начала 2019 года.
Gromov вне форума   Ответить с цитированием
Старый 05.03.2018, 14:21   #5
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 019
Благодарил(а): 15 раз(а)
Поблагодарили: 655 раз(а) в 599 сообщениях
По умолчанию Ответ: Энергонезависимая память

Цитата
Сообщение от Roll4Repairs Посмотреть сообщение
Теперь конкретика:
У нас страничный еепром, 1 страница = 256 байт. Т.е. ячейка должна быть не соседняя, а через 256 байт.


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

Добро всегда побеждает зло. Кто победил - тот и добрый.
Arsie сейчас на форуме   Ответить с цитированием
Старый 05.03.2018, 16:26   #6
Roll4Repairs
Member
 
Регистрация: Jun 2017
Сообщения: 56
Благодарил(а): 7 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию Ответ: Энергонезависимая память

Хорошо, тогда ещё 3 вопроса:

1). Можно ли отследить момент, когда начинает пропадать питание у контроллера? (можно было бы значительно уменьшить количество требуемых записей)

2). Со страницами вы меня окончательно запутали
Цитата:
Сообщение от Arsie Посмотреть сообщение
У нас страничный еепром, 1 страница = 256 байт. Т.е. ячейка должна быть не соседняя, а через 256 байт.
Т.е. если я в программе задействую, допустим, 4 блока EEPROM(integer) глубиной в 1, и в каждом буду хранить одну переменную(и регулярно её перезаписывать), то память будет израсходована в 4 раза быстрее ожидаемого? Т.к. все четыре переменных находятся в пределах одной страницы. ( 16 байт = 4*((2*1)+2); 256>16 )

3). Соответственно, чтобы увеличить количество перезаписей одной и той же переменной типа REAL для SMH2010 в 10 раз мне нужно создать 10 блоков ARRAY(real) длиной 64 каждый (чтобы один блок занимал одну страницу). Соответственно в первый блок писать и считывать переменную по адресу 0, во второй по адресу 256, в третий по адресу 511, четвертый по адресу 766 и т.д.
В случае, если эта переменная булевая, то длина блоков ARRAY(bool) будет 256, а адреса записи/чтения переменных будут те же.
Я правильно понял?
Roll4Repairs вне форума   Ответить с цитированием
Старый 05.03.2018, 17:01   #7
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 019
Благодарил(а): 15 раз(а)
Поблагодарили: 655 раз(а) в 599 сообщениях
По умолчанию Ответ: Энергонезависимая память

Цитата
Сообщение от Roll4Repairs Посмотреть сообщение
Хорошо, тогда ещё 3 вопроса:
1). Можно ли отследить момент, когда начинает пропадать питание у контроллера? (можно было бы значительно уменьшить количество требуемых записей)
Нет. Но можно поставить дешёвый УПС за 3 тыс рублей и получить данную функциональность.



Цитата
Сообщение от Roll4Repairs Посмотреть сообщение
2). Со страницами вы меня окончательно запутали


Т.е. если я в программе задействую, допустим, 4 блока EEPROM(integer) глубиной в 1, и в каждом буду хранить одну переменную(и регулярно её перезаписывать), то память будет израсходована в 4 раза быстрее ожидаемого? Т.к. все четыре переменных находятся в пределах одной страницы. ( 16 байт = 4*((2*1)+2); 256>16 )
Нет. Страницы при определённых условиях перемешиваются. За подробностями прошу в даташиты страничных еепромов.



Цитата
Сообщение от Roll4Repairs Посмотреть сообщение
3). Соответственно, чтобы увеличить количество перезаписей одной и той же переменной типа REAL для SMH2010 в 10 раз мне нужно создать 10 блоков ARRAY(real) длиной 64 каждый (чтобы один блок занимал одну страницу). Соответственно в первый блок писать и считывать переменную по адресу 0, во второй по адресу 256, в третий по адресу 511, четвертый по адресу 766 и т.д.
В случае, если эта переменная булевая, то длина блоков ARRAY(bool) будет 256, а адреса записи/чтения переменных будут те же.
Я правильно понял?
В каждом блоке писать по нулевому адресу. Но это всё равно сложный способ вы выбрали. Проще 1 блок с единичной длиной + 1 блок с длиной 63. И так 10 пар.


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

Добро всегда побеждает зло. Кто победил - тот и добрый.
Arsie сейчас на форуме   Ответить с цитированием
Старый 12.03.2018, 10:01   #8
Roll4Repairs
Member
 
Регистрация: Jun 2017
Сообщения: 56
Благодарил(а): 7 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию Ответ: Энергонезависимая память

Подумал на выходных над этой задачей, а ведь нам ещё необходим счётчик, который будет следить, на какой именно странице из 10-и хранится последнее актуальное записанное значение. В одной ячейке этот счётчик хранить не получится. А разбивать его на 10 ячеек памяти это плохая затея, т.к. счётчику тогда понадобится свой счётчик.

Я так понимаю, что считывание значений с энергонезависимой памяти не расходует её ресурс. Тогда счётчик можно было бы выполнить следующим образом: для каждой из 10-и страниц для хранения значения переменной будет отведена своя страница с отдельным счётчиком количества записей на 100.000 записей(блок Array длиной в 1 + пустой блок Array длиной в 127). Соответственно из 10-и страниц хранения переменной актуальна та, у которой счётчик имеет наибольшее количество записей. Корректно?

Цитата:
Сообщение от Arsie Посмотреть сообщение
Нет. Страницы при определённых условиях перемешиваются. За подробностями прошу в даташиты страничных еепромов.
Перечитал справку, не нашёл ничего про перемешивание страниц. Скажите, если я делаю несколько блоков EEPROM глубиной 1, то под каждый из них отводится отдельная страница?
Roll4Repairs вне форума   Ответить с цитированием
Старый 12.03.2018, 11:16   #9
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 019
Благодарил(а): 15 раз(а)
Поблагодарили: 655 раз(а) в 599 сообщениях
По умолчанию Ответ: Энергонезависимая память

Цитата
Сообщение от Roll4Repairs Посмотреть сообщение
Я так понимаю, что считывание значений с энергонезависимой памяти не расходует её ресурс. Тогда счётчик можно было бы выполнить следующим образом: для каждой из 10-и страниц для хранения значения переменной будет отведена своя страница с отдельным счётчиком количества записей на 100.000 записей(блок Array длиной в 1 + пустой блок Array длиной в 127). Соответственно из 10-и страниц хранения переменной актуальна та, у которой счётчик имеет наибольшее количество записей. Корректно?
Да, всё правильно.



Цитата
Сообщение от Roll4Repairs Посмотреть сообщение
Перечитал справку, не нашёл ничего про перемешивание страниц.
Часто ли вы видите в инструкции к микроволновке описание физических принципов функционирования магнетрона?



Цитата
Сообщение от Roll4Repairs Посмотреть сообщение
Скажите, если я делаю несколько блоков EEPROM глубиной 1, то под каждый из них отводится отдельная страница?
Нет, конечно.

Я же написал, что нужно делать: "Проще 1 блок с единичной длиной + 1 блок с длиной 63. И так 10 пар", будьте внимательнее.


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

Добро всегда побеждает зло. Кто победил - тот и добрый.
Arsie сейчас на форуме   Ответить с цитированием
Старый 12.03.2018, 11:28   #10
Roll4Repairs
Member
 
Регистрация: Jun 2017
Сообщения: 56
Благодарил(а): 7 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию Ответ: Энергонезависимая память

Цитата:
Сообщение от Arsie Посмотреть сообщение
...
Хорошо, спасибо за ответы
Roll4Repairs вне форума   Ответить с цитированием
Старый 23.03.2018, 14:14   #11
Roll4Repairs
Member
 
Регистрация: Jun 2017
Сообщения: 56
Благодарил(а): 7 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию Ответ: Энергонезависимая память

Здравствуйте! Хотел выложить на суд-критику свой небольшой макрос, которой увеличивает количество возможных записей одной переменной в 3 раза. Запись и счёт записей осуществляются по выходам Ready и Sync блока Input.

В моём случае это переменная REAL. При желании макрос можно было бы модифицировать для увеличения возможного количества записей в N раз.
Вложения
Тип файла: msl Mem_selfmade_Ustavka.msl (60.4 Кбайт, 46 просмотров)
Roll4Repairs вне форума   Ответить с цитированием
Старый 23.03.2018, 14:27   #12
Gromov
Уволен из Сегнетикс
 
Регистрация: Nov 2015
Адрес: CПб/ВЛГ
Сообщения: 0
Благодарил(а): 0 раз(а)
Поблагодарили: 1 раз в 1 сообщении
По умолчанию Ответ: Энергонезависимая память

А какой в этом всём практический смысл?


__________________
В сегнетиксе не работаю с самого начала 2019 года.
Gromov вне форума   Ответить с цитированием
Старый 23.03.2018, 14:30   #13
Roll4Repairs
Member
 
Регистрация: Jun 2017
Сообщения: 56
Благодарил(а): 7 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию Ответ: Энергонезависимая память

Цитата
Сообщение от Gromov Посмотреть сообщение
А какой в этом всём практический смысл?
Возможно у кого-то, как и у меня возникнет надобность часто записывать переменную в память. А поскольку запись ведётся не в одну и ту же ячейку, а распределяется между ними, то ресурс использования памяти увеличивается.
Roll4Repairs вне форума   Ответить с цитированием
Старый 23.03.2018, 14:51   #14
Gromov
Уволен из Сегнетикс
 
Регистрация: Nov 2015
Адрес: CПб/ВЛГ
Сообщения: 0
Благодарил(а): 0 раз(а)
Поблагодарили: 1 раз в 1 сообщении
По умолчанию Ответ: Энергонезависимая память

Ну если не секретные сведения, расскажите, пожалуйста, что за процесс вы программируете и какие данные и для чего сохраняете?


__________________
В сегнетиксе не работаю с самого начала 2019 года.
Gromov вне форума   Ответить с цитированием
Старый 23.03.2018, 15:05   #15
Roll4Repairs
Member
 
Регистрация: Jun 2017
Сообщения: 56
Благодарил(а): 7 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию Ответ: Энергонезависимая память

Цитата
Сообщение от Gromov Посмотреть сообщение
Ну если не секретные сведения, расскажите, пожалуйста, что за процесс вы программируете и какие данные и для чего сохраняете?
Кондиционер, а сохраняю я :
1. Уставку температуры.
2. Включение-выключение кондиционера, если пропадёт питание, а потом снова появится, то контроллер должен запустить кондиционер снова. То есть нужно делать запись каждый раз, когда его включают/выключают. Там всё по аналогии, просто переменная типа Bool.

Срок изделия-кондиционера 15 лет и я хотел перестраховаться с энергонезависимой памятью.
Roll4Repairs вне форума   Ответить с цитированием
Старый 23.03.2018, 15:14   #16
Gromov
Уволен из Сегнетикс
 
Регистрация: Nov 2015
Адрес: CПб/ВЛГ
Сообщения: 0
Благодарил(а): 0 раз(а)
Поблагодарили: 1 раз в 1 сообщении
По умолчанию Ответ: Энергонезависимая память

Но ведь даже если какой-то упоротый пользователь будет включать и выключать его более 12 раз в сутки, без праздников и выходных, этого всё равно с запасом хватает, разве нет?


__________________
В сегнетиксе не работаю с самого начала 2019 года.
Gromov вне форума   Ответить с цитированием
Старый 23.03.2018, 15:31   #17
Roll4Repairs
Member
 
Регистрация: Jun 2017
Сообщения: 56
Благодарил(а): 7 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию Ответ: Энергонезависимая память

Цитата
Сообщение от Gromov Посмотреть сообщение
Но ведь даже если какой-то упоротый пользователь будет включать и выключать его более 12 раз в сутки, без праздников и выходных, этого всё равно с запасом хватает, разве нет?
Ну вообще я согласен, что хватает)

Предполагалось, что не только пользователь может включать/выключать автоматический режим, поэтому я перестраховался. Но в итоге это требование убрали.
Roll4Repairs вне форума   Ответить с цитированием
Старый 23.03.2018, 17:38   #18
viaduc
Новичок
 
Регистрация: Dec 2016
Сообщения: 13
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию Ответ: Энергонезависимая память

Вопрос такой же.Но про SMH4.
Тех процесс. Меняется величина и необходимо раз 100 в сутки(ориентировочно) записывать в память SMH4 число и сравнивать потом с предыдущими.
Данная инормация актуальна? Спасибо
viaduc вне форума   Ответить с цитированием
Старый 23.03.2018, 17:41   #19
Gromov
Уволен из Сегнетикс
 
Регистрация: Nov 2015
Адрес: CПб/ВЛГ
Сообщения: 0
Благодарил(а): 0 раз(а)
Поблагодарили: 1 раз в 1 сообщении
По умолчанию Ответ: Энергонезависимая память

По smh4 читайте в той же главе справки лоджика, какие там цифры. Но там всё ещё более приблизительно, потому что там сама система занимается динамической записью в память. Поскольку там не используются чипы eeprom, там всё вообще несколько иначе на железном уровне.


__________________
В сегнетиксе не работаю с самого начала 2019 года.
Gromov вне форума   Ответить с цитированием
Старый 23.03.2018, 20:27   #20
LordN
Senior Member
 
Регистрация: Dec 2007
Адрес: Томск
Сообщения: 4 125
Благодарил(а): 239 раз(а)
Поблагодарили: 161 раз(а) в 153 сообщениях
По умолчанию Ответ: Энергонезависимая память

Цитата
Сообщение от viaduc Посмотреть сообщение
Вопрос такой же.Но про SMH4.
Тех процесс. Меняется величина и необходимо раз 100 в сутки(ориентировочно) записывать в память SMH4 число и сравнивать потом с предыдущими.
Данная инормация актуальна? Спасибо
берете что-то типа бесперебойника, лишь бы питания контроллеру хватило чтобы записать по сигналу с дискретного входа на флеш или куда там оно пишется.. на дискр.вход подаете сухой контакт релюхи которая висит на переменке питающей бп контроллера. у меня такая фигня уже с 2005го пашет на пикселе. в моем случае в роли бесперебойника выступил овеновский бп. входной емкости хватает чтобы пиксель успел записать число в память.


__________________
C уважением, LordN
LordN сейчас на форуме   Ответить с цитированием
Старый 23.03.2018, 21:22   #21
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 019
Благодарил(а): 15 раз(а)
Поблагодарили: 655 раз(а) в 599 сообщениях
По умолчанию Ответ: Энергонезависимая память

Цитата
Сообщение от viaduc Посмотреть сообщение
Вопрос такой же.Но про SMH4.
Тех процесс. Меняется величина и необходимо раз 100 в сутки(ориентировочно) записывать в память SMH4 число и сравнивать потом с предыдущими.
Данная инормация актуальна? Спасибо
А это число необходимо записывать в именно энергонезависимую память?


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

Добро всегда побеждает зло. Кто победил - тот и добрый.
Arsie сейчас на форуме   Ответить с цитированием
Старый 18.11.2018, 15:14   #22
vostok66
Новичок
 
Регистрация: Nov 2018
Адрес: Хабаровский край
Сообщения: 4
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию Ответ: Энергонезависимая память

Цитата
Сообщение от Gromov Посмотреть сообщение
Очень рекомендую вам прочитать эту статью на гиктаймс. Она много рассказывает про еепром и особенности записи туда.



5) Заменить отдельно чип памяти можно. Проект хранится во флэш-памяти самого процессора. Однако, нужно учитывать, что все сохранённые значения eeprom будут потеряны и придётся учитывать, что при запуске с новым чипом памяти будет прочитан "мусор". Придётся перезаписать все уставки.
Для тех,кто опасается за жизнь EEPROM позволю небольшой совет.Сохраните информацию с
EEPROM AT24C512(D7).Для этого на плате рядом с кварцевым резонатором есть контактное поле ХР10.Подключившись программатором,например,СН341А,считываем и сохраняем в файл,питание контроллера при этом включать не нужно.Теперь,если вам всё-таки удастся "высушить" память,заменить микросхему на предварительно прошитую не является технически сложной операцией.

Последний раз редактировалось vostok66, 18.11.2018 в 15:18 Причина: опечатка
vostok66 вне форума   Ответить с цитированием
Старый 19.11.2018, 11:21   #23
Gromov
Уволен из Сегнетикс
 
Регистрация: Nov 2015
Адрес: CПб/ВЛГ
Сообщения: 0
Благодарил(а): 0 раз(а)
Поблагодарили: 1 раз в 1 сообщении
По умолчанию Ответ: Энергонезависимая память

Цитата
Сообщение от vostok66 Посмотреть сообщение
...заменить микросхему на предварительно прошитую не является технически сложной операцией.
Тут я не готов с вами согласиться. Это далеко не каждому наладчику по силам.


__________________
В сегнетиксе не работаю с самого начала 2019 года.
Gromov вне форума   Ответить с цитированием
Старый 20.11.2018, 04:56   #24
vostok66
Новичок
 
Регистрация: Nov 2018
Адрес: Хабаровский край
Сообщения: 4
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию Ответ: Энергонезависимая память

Цитата
Сообщение от Gromov Посмотреть сообщение
Тут я не готов с вами согласиться. Это далеко не каждому наладчику по силам.
Да,не каждому.Но,как говорил В.И.Чапаев, "... так это если НАДО!!!"
Просто, анализируя принципиальную схему,отследил трассу контактного поля ХР10 и решил попробовать.
vostok66 вне форума   Ответить с цитированием
Ответ

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

Расширенный поиск
Опции просмотра

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Отщёлкнуть нажатую кнопку с фиксацией (решено) AntonTrade SMLogix 7 18.11.2019 15:07
2G подвисает при опросе через два соединения 1Gandalf1 Связь с внешним миром 9 31.03.2016 13:43
Сохранение в энергонезависимую память smersh Вопросы о SMH-2G(i) 17 22.05.2015 16:02
Энергонезависимая память Max2114 Вопросы о Pixel 6 29.08.2011 11:52


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


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