Форум программистов, компьютерный форум, киберфорум
ФедосеевПавел
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  

Шрифт, имитирующий символы семисегментного светодиодного индикатора

Запись от ФедосеевПавел размещена 23.02.2021 в 20:16
Показов 15951 Комментарии 3
Метки асутп, кипиа

Шрифт, имитирующий символы семисегментного светодиодного индикатора


1. Введение
При создании разделов КИП и А для технических отчётов о ПНР или РНИ на оборудовании (как в инструкции, так и в протоколе настроек) сталкивался с необходимостью показывать названия параметров в том виде, в каком они высвечиваются на дисплее прибора.

Необходимость возникает не всегда — чаще достаточно записать соответствующие символы латиницы (именно таким образом программы‑конфигураторы формируют протокол настроек прибора).

2. Исследование возможности единого шрифта для различных приборов
Для нескольких приборов, с которыми неоднократно работал, составил сводную таблицу соответствия символов на цифровом индикаторе буквам латинского алфавита.
Таблица составлена на основе документации производителя:
- для приборов производства Овен в РЭ таблица соответствия приведена в готовом виде,
- для таймера CTA4 соответствие было составлено из графических вставок названий параметров в РЭ, поэтому шрифт получился неполный — отсутствуют несколько символов.
Нажмите на изображение для увеличения
Название: СравнительнаяТаблица.PNG
Просмотров: 1098
Размер:	4.1 Кб
ID:	6823
В сводной таблице применены обозначения и выделения цветом.
Обозначения приборов соответствуют:
  • ТРМ148 (старый) — Овен ТРМ148 ранних выпусков,
  • ТРМ148 (новый) — Овен ТРМ148 новых выпусков,
  • ТРМ2xx — семейство приборов Овен ТРМ200, ТРМ201, ТРМ202, ТРМ212,
  • CTA4 — таймер Delta CTA4.
Выделения цветом:
  • желтым цветом выделены символы, различные для разных приборов,
  • красным цветом выделены символы, изображения которых остались неизвестными.
Доводилось работать с ПИД-регуляторами производства Ascon моделей M3, M5, KM3, TLK94, производства Siemens моделей RWF40, RWF50, производства PMA модели KS40. В РЭ на эти приборы отсутствовала готовая таблица соответствия символов на цифровом индикаторе буквам латинского алфавита. Для этих приборов даже и не пытался её составить, т. к. беглого ознакомления было достаточно, чтобы увидеть различия в большом количестве глифов, в добавок, были различия в начертании строчных и прописных букв.

3. Выводы
Из этих исследований следует неутешительный вывод — готового единого шрифта, подходящего для всех приборов не существует.

4. Возможные решения
Т. к. к настройке приборов допускается подготовленный персонал, то достаточно разумным является запись параметров обычным шрифтом, без визуального соответствия изображению на цифровом индикаторе.

Возможен вариант рисования в графическом редакторе заготовки текста из нужного количества символов, а для каждой надписи удалять ненужные сегменты и в виде изображения вставлять в документ.
Пример такой заготовки и изображений с текстом на её основе показан на рисунках
Нажмите на изображение для увеличения
Название: template.png
Просмотров: 636
Размер:	630 байт
ID:	6824 Нажмите на изображение для увеличения
Название: cta4_Stage2.png
Просмотров: 559
Размер:	663 байт
ID:	6825 Нажмите на изображение для увеличения
Название: cta4_time.png
Просмотров: 439
Размер:	537 байт
ID:	6826

Однако, если «охота пуще неволи», имеется возможность создания собственного шрифта для каждого случая.

5. Создание собственного шрифта
Несколько лет назад с целью создания шрифта подбирал редактор. На тот момент из бесплатных был доступен только FontForge, доступный по ссылке
https://fontforge.org/en-US/
На официальном сайте доступна справка на английском языке. Т. к. редактор широко известный, то в интернет находятся ответы на множество вопросов по работе с редактором на русском языке.

Шрифт можно создать «с нуля», можно взять из интернет какой-нибудь близкий по начертанию бесплатный шрифт, открыть в редакторе шрифтов, скопировать символ цифры «8» в позицию нужного символа, удалить «лишние» сегменты. Перед сохранением зайти в свойства шрифта («Элемент» — «Информация о шрифте...») и изменить имя, с которым он будет виден в системе. Если редактировался не шрифт, а проект, то в меню «Файл» выбрать «Создать шрифты...». После этого установить шрифт штатным способом. Перезагрузить компьютер и пользоваться.

В редакторе FontForge создал собственный шрифт для прибора Овен ТРМxx, чуть изменив получил другой — для Delta CTA4.
Особенностью шрифтов является отсутствие перемещения курсора при вводе символов «точка» и «запятая» — как это и выглядит на реальных цифровых дисплеях.

Шрифтом для Овен ТРМ2xx никогда не пользовался, т. к. конфигуратор формирует отчёт обычным шрифтом.
Шрифтом для Delta CTA4 пользовался при составлении протокола настройки этого прибора.
Получается, после создания шрифта, пользоваться им не стал, т. к. научился видеть текст в закорючках и в протоколах обходился латиницей.

Прикрепляю архив с файлами проекта для FontForge и шрифтами в формате TTF.
LED-7.7z

Ещё добавлю ссылки на бесплатные шрифты для имитации семисегментного индикатора
https://www.dafont.com/7led.font
http://ru.legionfonts.com/fonts/7-segment

5. Заключение
Проведено исследование изображений символов на цифровом индикаторе для различных приборов, из которого получен вывод о невозможности существования единого шрифта.

Для двух приборов созданы шрифты, имитирующие цифровой дисплей из семисегментных индикаторов.

Даны рекомендации по модификации шрифтов для получения соответствия другим приборам.

Как и во всех случаях работы с уникальными шрифтами, обязательно нужно учитывать вероятность их отсутствия на других компьютерах.
Для меня приемлемым является встраивание шрифтов в документ (в свойствах документа).
Метки асутп, кипиа
Размещено в АСУ ТП, Инструменты
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Всего комментариев 3
Комментарии
  1. Старый комментарий
    Аватар для CoderHuligan
    А в этом редакторе можно точечные шрифты создавать?
    Запись от CoderHuligan размещена 24.02.2021 в 10:03 CoderHuligan вне форума
  2. Старый комментарий
    Аватар для ФедосеевПавел
    Не задумывался.

    Если речь о шрифтах для DOS - то есть в самом DOS достаточно удобные редакторы типа FontMania.
    Хотя мне больше нравится FontMania 2.2, но ссылку на него не вижу. Редактор был в RSWAG, только не помню, в каком году.

    Сейчас открыл в FontForge какой-то растровый шрифт *.fon из c:\Windows\Fonts
    Значит можно и редактировать, вероятно, и создавать с нуля.

    Для растровых шрифтов Windows *.fon один пользователь хвалил более простой редактор Fonny.

    Сам я от нужды занялся рисованием шрифта в далёком 2014 году. За новогодние праздники успел и определиться с редактором и пройти путь от нуля до создания примитивного шрифта на 30 символов. При этом и праздновал и ездил несколько дней по родне - поздравлял. Т.е. простому человеку доступно.
    Запись от ФедосеевПавел размещена 24.02.2021 в 17:53 ФедосеевПавел вне форума
  3. Старый комментарий
    Аватар для CoderHuligan
    Большое спасибо за ссылки и инфо!
    Запись от CoderHuligan размещена 24.02.2021 в 18:51 CoderHuligan вне форума
 
Новые блоги и статьи
[golang] Двоичная куча, min-heap
alhaos 20.05.2026
Двоичная куча Двоичная куча — структура данных, которая всегда держит самый важный элемент наготове. Представьте очередь к хилеру в игре, и очередь из игроков в приоритете те у кого меньше. . .
[golang] Breadth-First Search
alhaos 19.05.2026
BFS (Breadth-First Search) — это базовый алгоритм обхода графа в ширину, который поуровнево исследует все связанные вершины. Он начинает с выбранной точки и проверяет всех соседей, прежде чем. . .
[golang] Алгоритм «Хак Госпера»
alhaos 17.05.2026
Алгоритм «Хак Госпера» Хак Госпера (Gosper's Hack) — алгоритм нахождения следующего по величине числа с тем же количеством установленных бит. Придуман Биллом Госпером в 1970-х, опубликован в. . .
Рисование бинарного древа до 6-го колена на js, svg.
russiannick 17.05.2026
<svg width="335" height="240" viewBox="0 0 335 240" fill="#e5e1bb"> <style> <!]> </ style> <g id="bush"> </ g> </ svg> function fn(){ let rost;/ / высота древа let xx=165,yy=210,w=256;
FSharp: interface of module
DevAlt 16.05.2026
Интерфейс модуля F# позволяет управлять доступностью членов, содержащихся в реализации модуля. По-умолчанию все члены модуля доступны: module Foo let x = 10 let boo () = printfn "boo" . . .
Хитросплетение родственных связей пантеона греческих богов.
russiannick 14.05.2026
Однооконник, позволяющий узреть и изучить отдельных героев древней Греции. <!DOCTYPE html> <html lang="ru"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible". . .
[golang] Угол между стрелками часов
alhaos 12.05.2026
По заданным значениям часа и минуты необходимо определить значение меньшего угла между стрелками аналогового циферблата часов. import "math" func angleClock(hour int, minutes int) float64 { . . .
Debian 13: Установка Lazarus QT5
ВитГо 09.05.2026
Эта инструкция моя компиляция инструкций volvo https:/ / www. cyberforum. ru/ blogs/ 203668/ 10753. html и его же старой инструкции по установке Lazarus с gtk2. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru