private void Classificator(Tag addingTag)
        {
            if (addingTag.TagDirection == Direction.Write)
            {
                if (!allWriteTags.ContainsKey(addingTag.Name))
                {
                    allWriteTags.Add(addingTag.Name, addingTag);
                }
                return;
            }
            if (addingTag.InnerTag is BoolTag)
            {
                if (!allBoolTags.ContainsKey(addingTag.Name))
                {
                    allBoolTags.Add(addingTag.Name, (addingTag.InnerTag as BoolTag));
                }
            }
            else if (addingTag.InnerTag is UshortTag)
            {
                allUshortTags.Add(addingTag.Name, (addingTag.InnerTag as UshortTag));
            }
            else if (addingTag.InnerTag is FloatTag)
            {
                allFloatTags.Add(addingTag.Name, (addingTag.InnerTag as FloatTag));
            }
            else if (addingTag.InnerTag is UintTag)
            {
                allUintTags.Add(addingTag.Name, (addingTag.InnerTag as UintTag));
            }

            if (addingTag.InnerTag.Function == StatusFunction.CoilStatus)
            {
                if (!CoilStatuses.ContainsKey(addingTag.Name))
                {
                    CoilStatuses.Add(addingTag.Name, (addingTag.InnerTag));
                }
            }
            else if (addingTag.InnerTag.Function == StatusFunction.InputStatus)
            {
                if (!InputStatuses.ContainsKey(addingTag.Name))
                {
                    InputStatuses.Add(addingTag.Name, (addingTag.InnerTag));
                }
            }
            else if (addingTag.InnerTag.Function == RegisterFunction.HoldingRegister)
            {
                if (!HoldingRegisters.ContainsKey(addingTag.Name))
                {
                    HoldingRegisters.Add(addingTag.Name, (addingTag.InnerTag));
                }
            }
            else if (addingTag.InnerTag.Function == RegisterFunction.InputRegister)
            {
                if (!InputRegisters.ContainsKey(addingTag.Name))
                {
                    InputRegisters.Add(addingTag.Name, (addingTag.InnerTag));
                }
            }

            addingTag.TagStatusChanged += (sender, e) =>
            {
                TagStatusChanged?.Invoke(sender, EventArgs.Empty);
            };
        }