Моя магистерская работа называется "Развитие C-2 коммуникаций". Под этим названием скрывается довольно интересная тема, суть которой в следующем. Немецкая фирма Siemens помимо всего прочего очень широко известна в Европе как фирма, предлагающая комплексные решения по автоматизации предприятий. Для автоматизации Siemens разработала широкий перечень микроконтроллеров и периферии к ним (датчики, исполнительные устройства, двигатели и т.п.). Для связывания устройств в сеть фирмой Siemens была предложена шинная архитектура и несколько протоколов управления сетью и работой устройств. Для программирования микроконтроллеров были разработаны несколько языков программирования:
Промышленная сеть, включающая в себя устройства Siemens, может быть построена на основе MPI (Multy Point Interface) сети или Profibus (Professional FieldBus) сети. Первый тип сети используется в простейших случаях, когда количество активных станций в сети < 32 и скорость передачи не выше 187,5 Кбит/с. Второй тип сети более сложный, он позволяет иметь в одном сегменте сети до 127 станций и оговаривает скорость передачи вплоть до 12 Мбит/с. Так как моя магистерская работа непосредственно связана со вторым типом сети/протокола, остановимся на нем подробнее. В сеть, построенную на основе ProfiBus, могут входить следующие устройства:
Протокол ProfiBus, разработанный фирмой Siemens, представляет собой довольно сложный протокол, относящийся к классу протоколов connectionless (то есть без установления логического соединения). Однако, несмотря на то, что спецификация на протокол представляет собой документ объемом в 1200 страниц, исследований по моделированию временного поведения его работы до сих пор не проводилось. В немецком университете IFAK (г. Магдебург) как раз занимаются подобными проблемами и мне по линии международного сотрудничества была предложена данная тема. В названии темы C2 означает Master Class 2, то есть моделирование работы программатора в сети ProfiBus.
Моделирование осуществляется посредством применения языка Estelle, относящегося к SDL (specification description languages - языки описания спецификаций) языкам, которые являются развитием языков описания конечных автоматов (FSA - finite-state automaton). С помощью этого языка создается модель протокола одного объекта (в данном случае программатора), также создается модель физической среды передачи. Затем создается необходимое количество объектов на основе описания одного объекта/протокола (как в объектных языках), после этого необходимо написать макрос, который будет управлять симуляцией. После того как симуляция завершена, разработчик просматривает интересующую его информацию и на основе полученных данных (графики, числовые значения) судит о необходимости внесения тех или иных изменений.