Особые свойства кодов
Возникновение различных систем счисления (кодов) связано со стремлением придать коду какие-либо дополнительные свойства: обеспечить большую равномерность ввода информации в управляющие устройства станком, упростить преобразование чисел из одной системы счисления в другую (из одного кода в другой), упростить вычислительные операции, придать коду свойства обнаружения или исправления ошибок и др.
Принцип самодополнения. Двоично - десятичные коды 2421, 4221 и 8421 с избытком 3 (табл. 1.4) называются самодополняющимися. В этих кодах двоичное обозначение десятичной цифры А может быть получено из кодового обозначения цифры, равной 9— А (девять минус А) Путем простой инверсии знаков, т. е. заменой всех нулей единицами и наоборот. Так, в коде 2421, например, цифра 7 — 1101 — получается инверсией цифры 2 — 0010, цифра 4 — 0100 — инверсией цифры 5— 1011 ит. д.
Пример:
1101 — 7 0100 — 4 0001 — 1 0011—3
0010 — 2 1011 — 5 1110 — 8 1100 — 6
1111—9 1111—9 1111—9 1111—9
Этим же свойством обладает код 8421 с избытком 3 (8421 +3), в котором каждая десятичная цифра представляется суммой десятичного числа и,- и числа 3, выраженного в двоичном коде. Например, изображение цифры 5 в коде 8421 +3 — — 1000 соответствует изображению цифры 8 (5 + 3) в коде 8421 и т. д.
Указанное свойство кодов позволяет достаточно просто строить реверсивные двоично-десятичные счетчики управляющих систем станков и вычислительных устройств и вводить информацию в дополнительном коде, т. е. вместо числа А записывать число 9 —Л. В ряде случаев это свойство может быть использовано для построения схем контроля.
Таблица 1.4. Изображение десятичных цифр в двоично-десятичных кодах
|
Из приведенных самодополняющихся кодов код 2421 при прочих равных условиях имеет преимущество благодаря более простому преобразованию в двоичный код. В этом коде двоичные обозначения первых пяти цифр (от 0 до 4) совпадают с обозначениями этих цифр в нормальном двоичном коде 8421. Обозначения же цифр от 5 до 9 в коде 2421 соответствуют обозначению в коде 8421 той же цифры (числа), но с избытком 6. Например, цифра 5 в коде 2421 обозначена 1011. Такое же обозначение в коде 8421 имеет число 11, т. е. число, равное 5 + 6. Цифра 7 в коде 2421 обозначается 1101. Это же обозначение в коде 8421 имеет число 13 (7 + 6) и т. д.
Помехозащищенность кодов. Особым свойством ряда кодов является помехозащищенность. Это позволяет уже на этапе кодирования информации предусмотреть возможность обнаружения или исправления разнообразных ошибок (или то и другое вместе): ошибки программиста, ошибки оператора, сбоев перфорирующих и считывающих устройств и т. д.
Коды, построенные в соответствии с принципами помехоустойчивого кодирования, называют помехоустойчивыми. Кратностью ошибки называют число искаженных символов в комбинации. Различают коды, обнаруживающие ошибки, и коды, исправляющие ошибки. В зависимости от кратности ошибки в том и другом случае различают коды, обнаруживающие или исправляющие единичные ошибки, двойные ошибки и т. д.
Во всех случаях помехоустойчивость достигается ценой избыточности кода. Общая длина кодовой комбинации помехоустойчивого кода, равная п, представлена из двух частей. Одна часть содержит K комбинаций и служит для передачи необходимого сообщения. Такие комбинации называют информационными. Вторая часть содержит оставшиеся п — K Комбинаций и служит для обнаружения или исправления ошибок. Эти комбинации называют контрольными. Таким образом, для передачи сообщения используют 2к комбинаций, которые называют разрешенными. Остальные (2П — 2к) комбинации для передачи сообщения не используются и при нормальной работе устройства появляться не должны, их называют запрещенными.
При формировании кодов чаще всего деление всех кодовых комбинаций на информационные (разрешенные) и контрольные (запрещенные) осуществляется по четности или нечетности комбинаций , 0011
Т2
Oil ГГ1
Т2
Т2
10
Ошибки нет
Рис. 1.4. Помехозащищенность кодов по четности: а — передача разрешенной комбинации (четная); б — неразрешенная комбинация (нечетная — ошибка в передаваемом сигнале)
Из символов кода. При этом назначение комбинаций двух видов может быть различным, хотя чаще всего разрешенными принимаются четные комбинации, так как при этом более просты контрольные устройства, обнаруживающие ошибки [6, 73]. Например, если для кодирования информации принята четная группа комбинаций (группа А), то нечетная группа комбинаций (группа Б) будет контрольной — запрещенной.
Четные комбинации (группа А): 0000; 0101; 0110; 1001; 1010; 1100; 1111.
Нечетные комбинации (группа Б): 0001; 0010; 0100; 0111; 1011; 1101; 1110.
Четные комбинации используют для передачи сообщений. Все нечетные комбинации являются запрещенными и при нормальной работе появляться не должны. Появление нечетной комбинации обнаруживает однократную ошибку (искажение одного разряда четной комбинации дает нечетную комбинацию). Это просто обнаруживается системой контроля, построенной, например, на логических элементах с функцией сложения по модулю m2 (рис. 1.4).
Б) |
0001 |
Т.2 |
С контролем по нечетности составлен код 8421+3 с проверочной позицией (см. табл. 1.4). Левая (пятая) дорожка кода, являясь контрольной, служит для дополнения знаком 1 кодовой комбинации в том случае, если число единичных символов (отверстий) основной тетрады — четное. Таким образом, в коде разрешенными комбинациями являются нечетные. Появление комбинации с четным количеством единичных символов, например 00101, 01111 и др., ука
зывает на ошибку. Для сравнения укажем, что в незащищенном коде 8421 искажение одной позиции в какой-либо комбинации — например, вместо 0111 (десятичная цифра 7) передана информация 0110 (десятичная цифра 6) — приводит к переходу одной комбинации в другую и не позволяет достаточно просто обнаружить ошибку.
Метод контроля по четности или по нечетности комбинаций может осуществляться не только по каждой комбинации кода, но и по всему коду в целом. Таким свойством обладают некоторые равновесные комбинаторные коды, в частности 2 из 5 и 3 из 5. Десятичные цифры в этих кодах выражаются или двумя символами 1 (код 2 из 5) или тремя (код 3 из 5), которые своим положением на разных позициях определяют ту или иную цифру. Так, в коде 2 из 5 нуль кодируется 11000, единица — 00011, двойка — 00101 и т. д., т. е. в каждой комбинации, определяющей десятичную цифру, обязательно находится два символа 1. Поэтому, если используется этот код, при появлении сигналов 01101, 01000 и других с количеством единиц менее или более двух сразу фиксируется ошибка. Однако код, как и многие другие имеющие помехозащищенность по поперечной четности, не позволяет наити ошибку, если смещены единицы в пределах одной кодовой комбинации (например, вместо 01001 передана комбинация 00101), т. е. совершена двойная ошибка (0 вместо 1 на четвертой дорожке и 1 вместо 0 на третьей). Для определения двойных ошибок существуют соответствующие коды и методы контроля [6, 73].
Рис. 1.5. Помехозащищенность кодов по нечентности (код AEG): а — перяда - ча разрешенной комбинации и ее контроль; б — ошибка в передаче |
Большой класс корректирующих кодов составляют систематические коды, у которых значение контрольных разрядов получается в результате проведения операций над информационными разрядами. Так, в коде AEG для металлорежущих станков для передачи информации используют кодовые комбинации с длиной / = 8. На дорожках 1 — 4 (рис. 1.5, а) перфоленты записываются цифры в двоично-десятичном коде 8421, дорожки 5 а 6 служат для индексации чисел или букв, а дорожки 7 и 8 являются контрольными. На дорожке 7 указывается (пробивается) символ 1, если число единиц на дорожках 1—3, 5 четное. Аналогично пробивкой на дорожке 8 символа 1 дополняется до нечетного значения число единиц, записанных на дорожках 1, 2, 4, 6. Такой контроль по нечетности одновременно по двум группам одной кодовой комбинации дает возмож
ность обнаруживать 100 % одиночных ошибок и до 70 % всех возможных двойных.
Например, при записи на дорожках 6—1 (рис. 1.5, а) кодовой комбинации 011110 на дорожках 7 и 8 будет соответственно 0 и 1. Кодовые комбинации по группам дорожек будут нечетные: дорожки 7, 5, 3, 2, I — 01110; дорожки 8, 6, 4, 2, 1 — 10110. Таким образом, для информации данной строки разрешенным будет сигнал 0 на дорожке 7 и сигнал 1 на дорожке 8, что и служит основой контроля передаваемой закодированной информации, построенной, например, на равнозначности (см. логические элементы в табл. 1.3, п. 5).
При появлении ошибки (например, на дорожке 2 вместо 1 будет прочитан 0 — рис. 1.5, б) сигнал контроля не будет соответствовать записанному на контрольной дорожке. В данном случае на выходе контрольного блока будет 1, а на дорожке 7 будет 0. Это и укажет на наличие ошибки.
Надежная помехозащищенность осуществляется в семиразрядном коде, именуемом кодом 7,3. В нем для передачи информации из семи разрядов (условно обозначим их ai — а7) используются четыре разряда: а4 — aj. Три разряда — а | — аз — являются контрольными, их значения вычисляются по формулам:
Fli =а7©а5® а4; а2 = а7фа6фа4; а3 = а7(В
Фа6фа5-
При записи информации вычисленные значения ai—аз наносят на соответствующие контрольные дорожки. Например, задаваемой информации 1010 (дорожки 4 — 7 на рис. 1.6) соответствуют знаки 010 на контрольных дорожках 1—3. Эти знаки получены расчетом.
В системе управления при считывании передаваемой информации для обнаружения возможной ошибки используется блок контроля. С помощью его логических элементов (сложение по модулю Т2) решаются уравнения обозревателя:
Д| = а? ©05 + ^4 + 01; Д2 = Q7 ф Об + 04 ф
Фа2; Аз = 07 © аб © as Ф аз.
Если при решении уравнений величины Ai—Дз равны нулю, то ошибка отсутствует, в противном случае число на дорожках 1—3 укажет номер разряда, в котором допущена ошибка, и это даст возможность ее исправить. Как видно из уравнений обозревателя, при значениях
А1 = 1 и Л2=1 ошибка — в разряде а4, при Ах = 1 и Д3=1 —в разряде <25, при Л2= 1 и Лз= 1 — в разряде at,, при Ai= 1, Л2=1 и Дз — 1—ошибка в разряде ат.
Передадаемая информа- Сигналы контроля 1010 ция 010 |
G) Ошибка (*) 6 сигнале информации Сигнал контроля То 75 Ttf1 То ж? То1 |
(разряв а5) |
Рис. 1.6. Схема контроля информации в коде 7, 3: а — передаваемая информация и сигналы контроля; 6 — схема организации (расчета) контроля; в —- передача информации с ошибкой; г — схема контроля информации |
Рассмотренные коды, осуществляющие контроль по поперечной четности, достаточно надежны. Но используют и другие виды контроля кодируемой информации: по продольной четности, по модулю, контроль кадра на кратность 3, 9 или 10 и т. д.
Контроль по модулю основан на проверке кратности суммы чисел, записанных на нескольких строчках в пределах некоторого завершенного объема комбинаций (например, в объеме кадра программы), некоторому числу т (модулю). В общем случае
^ Xi = g (mod т),
Где Xi — числовое значение кодовой комбинации, записанной в г-й строке; I — число строк в контролируемом объеме
Рис. 1.7. Схема контроля по модулю т |
Записанной информации; G — остаток от
/
Деления суммы J^X, на т.
1
Для того чтобы при любых значениях суммы по модулю С (т) сумма числовых значений, записанных в контролируемом блоке строк, была кратна величине т, Она дополняется некоторым числом Д, которое определяется при расчете информационных данных и записывается в том же коде на контрольной строке в пределах блока контролируемых строк: А = = M — G. При этом
I
£х, + Д = [Д + g] (mod т). (1.5)
1
Если A--g — m, То
I
^ +Д = 0 (mod т.).
1
Соотношение (1.5) является алгоритмом контроля записанной информации по модулю т.
Пример. Шесть последовательно записанных строк информации (рис. 1.7) контролируются по модулю, например по т = 10. Для расчета контрольного числа последовательно суммируются числовые значения записанных на всех шести строках комбинаций (например, в коде 8421): ОНО, 1001, 0001, 0010, 0111, 0010, т. е. определяется сумма написанных в коде десятичных цифр. Следовательно,
Б
£Лг1. = 6 + 9+ 1+2 + 7 + 2 = 27.
Дополнением суммарного числа 27 до числа, кратного модулю 10, будет число 3, которое и является контрольным и записывается на седьмой строке данного контролируемого объема информации. Естественно, что информация, записанная на последующих шести строках, будет контролироваться по другому контрольному числу, рассчитанному для этих последующих строк, и т. д. по всему общему объему информации, которая программируется.
В настоящем примере используется одна из возможных схем контроля, когда записанная информация с помощью читающего блока ФСУ последовательно (построчно) подается в специальный счетчик по модулю С (т). В счетчике информация суммируется. При получении количества сигналов, численно равного модулю, счетчик автоматически начинает отсчет с нуля. Если прочитанная информация не имеет ошибок или прочитана без ошибок, то, получив количество сигналов (сумму числовых значений строк + контрольное число), кратное модулю, счетчик будет в нулевом состоянии. Состояние счетчика обычно опрашивается сигналом от читающего устройства, который выдается после прочтения заданного для контроля количества строк. Если заданное количество строк равно семи (включая строку с контрольным числом), то проверка правильности информации будет выполняться после прочтения каждых семи строк в данном объеме всей информации. Если состояние счетчика отлично от нуля в момент контроля, то через индикатор ошибки (ПО) выдается сигнал о наличии ошибки.
Рассмотренный метод контроля достаточно надежен. Так, если контролю подлежит объем информации, записанной на 15 строках, то вероятность появления однократной ошибки составляет 0,9-10~2, двукратной — 0,4-10~4, трехкратной — 0,2-10~6. Как показывает анализ [6], одиночная ошибка при использовании рассматриваемого метода не обнаруживается, если ее числовое значение равно или кратно модулю т. Двойные ошибки не обнаруживаются контролем, если сумма числовых значений одиночных ошибок равна или кратна модулю или равна нулю.
Материальные носители информации для станков с ЧПУ — программоносители — можно условно разделить на внешние и внутренние.
К внешним программоносителям относят: перфокарты, перфоленты, кинопленки, магнитные ленты, магнитную проволоку, магнитные барабаны и диски. Внутренние программоносители — это штекерные панели и коммутаторы, панели с переключателями или кнопками, электронно-лучевые трубки и др. Внешние программоносители можно быстро заменять, записывать на них программу и хранить отдельно от устройств ЧПУ, достаточно просто дублировать путем выполнения копий, использовать в однотипных устройствах и т. п. Внутренние программоносители обычно являются неотъемлемым элементом конкретного УЧПУ, конструктивно с ним связанным.
Все программоносители характеризуются по емкости, скорости записи информации на них и скорости считывания этой информации, по быстроте замены, долговечности, удобству хранения, стоимости.