powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Помогите профану!!! часть 2
11 сообщений из 11, страница 1 из 1
Помогите профану!!! часть 2
    #32009855
Eddy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Привет всем ещё раз!
для тех,кто не в курсе, повторяю:
маленькое предисловие: я только закончил маленький курсик по ORACLE , к тому же , на немецком ,
с программированием я только начинаю дружить.......... В конторе, где я работаю, в базах данных никто
ничего не сечёт........... Теперь шеф меня озадачил сделать простенькую базу (SQL Server2000), в которую записывались бы ошибки, поступающие со Steuerung ( управляющего устройства )............
Дано: Есть различные группы (в Ethernet),
в каждую группу входит несколько управляющих устройств ( напр. Simatic S5, S7 ot Siemens ),
каждое упр.устройство одновременно посылает 1024 Bits , каждый Bit (изменённый) обозначает ошибку...........
вот мне и надо слепить базу и приложение , чтобы записать все посланные ошибки
( какое упр.устройство какую ошибку послало, ну и , конечно, дату, время и т .д.)
Дорогие проффи, помогите,пожалуйста!!
как мне отсортировать только измененные Bits и распихать всё по таблицам, чтобы потом можно было-бы
простым SELECT получить где,когда , какая ошибка произошла.............???

Часть 2:

задача усложнилась - оказывается, что разные упр.устр. могут посылать разные ошибки.... т.е.
напр. если 5-й бит в 10-ом байте первого упр.устр указывает на ошибку под номером 1013 (в таблице Errors),
то 5-й бит в 10-ом байте второго упр.устр может указывать на ошибку Nr. 23........
Что делать ?? не могу же я для каждого упр.устр свою отдельную таблицу ошибок создавать ????

Спасибо
...
Рейтинг: 0 / 0
Помогите профану!!! часть 2
    #32009859
Genady
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Объясните что такое измененный бит? И что такое неизмененный бит?
если приходит 000000000...00 то это значит нет ошибок, а если 001100...0000 то были две ошибки?
...
Рейтинг: 0 / 0
Помогите профану!!! часть 2
    #32009860
Eddy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
>>если приходит 000000000...00 то это значит нет ошибок, а если 001100...0000 то были две ошибки?

совершенно верно : таким образом, каждое упр.устр. может одновременно до,предположим, 1000 ошибок посылать ( первые 3 байта несут ,к примеру, информацию об упр.устр.)
...
Рейтинг: 0 / 0
Помогите профану!!! часть 2
    #32009864
Фотография tygra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Eddy
>задача усложнилась - оказывается, что разные упр.устр. могут посылать разные ошибки.... т.е.
>напр. если 5-й бит в 10-ом байте первого упр.устр указывает на ошибку под номером 1013 (в таблице >Errors),
>то 5-й бит в 10-ом байте второго упр.устр может указывать на ошибку Nr. 23........
>Что делать ?? не могу же я для каждого упр.устр свою отдельную таблицу ошибок создавать ????

А как иначе ты узнаешь, какой это тип ошибки, если для разных устройств одинаковый код ошибки означает на самом деле разные типы ошибок. Больше никак. Можно немного по-другому сделать: в таблице ошибок указывать тип устройства, тогда таблица будет одна, но для каждого типа устройств свои ошибки, или можно тип устройства указывать, если этот код ошибки для данного устройства отличается от остальных, а если ошибка для всех одинаковая, то код не указывать. Только искать потом в два шага: сначала ищешь по типу устройства, если не нашел, значит ищешь среди общих.
...
Рейтинг: 0 / 0
Помогите профану!!! часть 2
    #32009865
Фотография tygra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, еще отклонясь от темы. Eddy, ты не в Германии случаем, слова немецкие в примере приводишь
, по поводу работы есть вопросик, не черкнешь на мыло, поговорим. Если не в Германии, то увы

tygra_ra@mail.ru
...
Рейтинг: 0 / 0
Помогите профану!!! часть 2
    #32009870
Eddy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
>>если приходит 000000000...00 то это значит нет ошибок, а если 001100...0000 то были две ошибки?

совершенно верно : таким образом, каждое упр.устр. может одновременно до,предположим, 1000 ошибок посылать ( первые 3 байта несут ,к примеру, информацию об упр.устр.)
...
Рейтинг: 0 / 0
Помогите профану!!! часть 2
    #32009877
ponyrev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ДЛЯ НАЧАЛА ВАМ СЛЕДУЕТ:
- составить список устройств, от которых
приходят данные. Обозвать их для ясности
(box1, box2, etc).
- для каждого устройства:
--- составить список сигналов с расшифровкой,
что сие означает. Если Список - битовая
строка, перенумеровать и обозначить.
--- составить график сьема сигналов
--- описать известные сбои (ошибки), и что с ними делать, и какие данные заносить в случаях ошибок

- Составить список общих реквизитов установки
Обычно это дата, время, фамилия оператора,
рост, вес, и прочая требуха.

- Составить список репортов, которые планируется получать. Нарисовать их в драфте.
Посмотреть хватает ли данных для их получения. При необходимости прокорректировать предудыщие условия.

ТЕПЕРЬ МОЖНО приступать к проектированию базы данных.

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

желаю удачи,
понырев
...
Рейтинг: 0 / 0
Помогите профану!!! часть 2
    #32009878
ponyrev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ДЛЯ НАЧАЛА ВАМ СЛЕДУЕТ:
- составить список устройств, от которых
приходят данные. Обозвать их для ясности
(box1, box2, etc).
- для каждого устройства:
--- составить список сигналов с расшифровкой,
что сие означает. Если Список - битовая
строка, перенумеровать и обозначить.
--- составить график сьема сигналов
--- описать известные сбои (ошибки), и что с ними делать, и какие данные заносить в случаях ошибок

- Составить список общих реквизитов установки
Обычно это дата, время, фамилия оператора,
рост, вес, и прочая требуха.

- Составить список репортов, которые планируется получать. Нарисовать их в драфте.
Посмотреть хватает ли данных для их получения. При необходимости прокорректировать предудыщие условия.

ТЕПЕРЬ МОЖНО приступать к проектированию базы данных.

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

желаю удачи,
понырев
...
Рейтинг: 0 / 0
Помогите профану!!! часть 2
    #32009880
Fompro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Eddy
И всё-таки КАК код ошибки (1024бит) оказывается на сервере??? Через BCP? КАК Вы узнаёте, что это событие (приход 1024бит от конкретного ус-ва) произошло?
...
Рейтинг: 0 / 0
Помогите профану!!! часть 2
    #32009891
Genady
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
/*==============================================================*/
/* Database: ErrLog */
/*==============================================================*/
create database ErrLog
go


use ErrLog
go


/*==============================================================*/
/* Table : Device */
/*==============================================================*/
create table Device (
DeviceID int not null,
DeviceTypeID int not null,
DeviceName varchar(30) null,
constraint PK_DEVICE primary key (DeviceID)
)
go


/*==============================================================*/
/* Table : DeviceType */
/*==============================================================*/
create table DeviceType (
DeviceTypeID int not null,
DescriptionType varchar(250) not null,
constraint PK_DEVICETYPE primary key (DeviceTypeID)
)
go


/*==============================================================*/
/* Table : Error */
/*==============================================================*/
create table Error (
ErrorID int not null,
DeviceID int not null,
ErrorNumber int not null,
Position int not null,
ErrorText varchar(250) not null,
constraint PK_ERROR primary key (ErrorID)
)
go


/*==============================================================*/
/* Table : LoggedError */
/*==============================================================*/
create table LoggedError (
LoggedErrorID int not null,
ErrorID int not null,
CurDateTime datetime not null,
constraint PK_LOGGEDERROR primary key (LoggedErrorID)
)
go


alter table Device
add constraint FK_DEVICE_RLSH_1_DEVICETY foreign key (DeviceTypeID)
references DeviceType (DeviceTypeID)
go


alter table Error
add constraint FK_ERROR_RLSH_2_DEVICE foreign key (DeviceID)
references Device (DeviceID)
go


alter table LoggedError
add constraint FK_LOGGEDER_RLSH_3_ERROR foreign key (ErrorID)
references Error (ErrorID)
go


Этот скрипт создаст базу с 4 таблицами - ГруппаУстройств, Устройство, ОшибкиУстройств, ЗарегестрированныеОшибки.

Если я правильно понял задачу, то это то что Вам нужно. Что бы решить какие еще нужны триггера и/или процедуры мне нужно более глубоку вникнуть в суть задачи, если вам уж совсем тяжело будет разобраться пишите по e-mail. Да, поле Position в Error указывает позицию бита ошибки. Оперативной является только таблица LoggedError, остальные - справочники.

P.S. Могу выслать модель Power Designer-а или скриншот схемы данных, хотя структура в данном случае проста и Вы сможете ее увидеть создав диаграмму в ЕМ.
...
Рейтинг: 0 / 0
Помогите профану!!! часть 2
    #32009926
Eddy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Огрмное Спасибо всем!!!!!

как эти 1024 Bits оказываются на сервере - я толком не знаю.......
эта программка - DServer -забирает данные и , скорее всего через какую-то пронраммку
( написанную на Basic ili na Delpha ) будет вносить в базу................
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Помогите профану!!! часть 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]