Некоторая документация по АСУТП для решения некоторых задач.


Зависание ADAM-5024 
Немного о системах управления заводами фирмы AMMANN
Восстановление MBR системы AS1 завода AMMANN
Считывание данных с ADAM-5017H.

Зависание ADAM-5024

Проблема проявляется в том через некоторое время работы  на плате ADAM-5024 с аналоговых выходов ( причем всех)  исчезает напряжение ( или ток ) несмотря на то что присутствуют сигналы задания .

Плата  ADAM-5024 ( Advantech ) имеет 4 выходных аналоговых канала.  Каждый канал имеет 2 выхода: токовый  ( до 20 ma ) и  напряжения ( до 10 в).   Причина по которой исчезают выходные сигналы - это действие сильных помех.  То есть плата просто зависает, все выхода просто блокируются и напряжение на них нуль!  Конечно нужно установить причину возникновения помех, но как правило это заключается в расследовании чего нового обслуживающий персонал ( как правило электрики ) прикрутили к шкафу с данным контроллером  в котором эта плата? Других причин, могу сказать по опыту, как правило не бывает.  Если  обслуживающего персонала нет на месте, то как правило поиском "местных нововведений" занимался  уже мой коллега киповец.  Между тем чтобы система продолжала работать, пока он ищет проблему,  мне пришлось написать подпрограмму для контроллера ADAM-5510, которую бы оператор дистанционно запускал и проводил сброс контроллера, чтобы можно было бы продолжать выпуск продукции.  Здесь  привожу листинг этой программы в которой это подпрограмма ( на языке СИ ):

/****************************************************/
/*  Filename     : RES5510.C                */
/****************************************************/

#include <dos.h>
void pascal sbros5510(void)
{
 union REGS reg;
    reg.h.ah = 0x0;
 int86(0X02, &reg, &reg);
}


Немного о системах управления заводами фирмы AMMANN.

Начиная с 2001 года мне пришлось сталкиваться с разными системами управления асфальтобетонных заводов фирмы AMMANN: AS20, AS2000, AS2000plus, AS1. 
    Система AS20 - эта система управления которая была современной для 80-х годов 20 столетия, хотя на данный момент еще существуют кое-где заводы с данной системой управления  и до сих пор работают!  По современным меркам очень громоздкая система управления. У оператора имеется здоровенный пульт управления с приборами и кнопками. В шкафах еще можно встретить плавкие предохранители!  Конечно те кто до сих пор эксплуатируют эти системы очень сильно рискуют. Запчасти, особенно электронику к  этому заводу, думаю что не так просто найти! 
    Остальные 3-системы: AS2000, AS2000plus и AS1 в качестве системы управления имеют персональный компьютер. Компьютер совмещает в себе soft-контроллер и  визуальную систему  для работы оператора по выпуску асфальтобетона.
    Система AS2000 свое развитие получила в начале 90-х годов. Мне пришлось видеть всего 2 раза эти системы.  Промышленный компьютер фирмы EKF осуществляет сбор данных через шину Interbus. Модули Interbus начала 90-х, очень громоздки, что не удивительно для того времени. Несмотря на это система очень надежная. Операционная система специализированная . Проблемы  c какими сталкивался: это переполнение жесткого диска этой системы и высохшие конденсаторы в блоке питания. Проблемы по питанию приводят к неустойчивой работе по шине Interbus, проблемы же переполнения диска  вызывают невозможность ввода новых рецептов, а также к неверной работе некоторых узлов ( к примеру на моей практике эти проблемы возникали с фильтром пылеочистки)  Но надо отметить что все это происходило для заводов возраста  14-16 лет. 
    Система AS2000plus это система которая начала внедряться с середины 90-х годов. По-моему мнению это одна из наиболее удачных систем  управления, из тех которые я видел. Работает эта  система под  операционной системой  Unix,  на  SPARC-совместимых рабочих станциях германской сборки.  На более старых асфальтобетонных заводах установлены более старые модели рабочих станций и более старые версии Unix. Система же остается по сути той же самой. Работа под Unix исключает какие либо вирусы вообще, а также исключает  возможные искушения оператору  поставить туда игровые программы, ввиду того что эта система малоизвестна в  России для широкого круга лиц. Кроме того как и всякая Unix - она обладает мощными  коммуникационными возможностями, что потенциально позволяет производить дистанционный сервис данной системы. Системы  с AS2000plus мне приходилось обслуживать чаще всего.  Проблем с рабочими станциями этих систем не возникает   если нет проблем  с электропитанием завода и поддерживается нужный температурным режим. Если же есть проблемы с электропитанием  или по причине недопустимых температур, то чаще всего проблемы возникают с жесткими дисками.  Так как сама файловая система Unix  обладает достаточным кол-вом резервных суперблоков, то эти проблемы специалисту вполне по силам решить. Сложности же возникают от того что ремонтом пробуют заниматься неспециалисты, тогда это приводит порой к полному уничтожению файловой системы. Мне не раз приходилось сталкиваться с системами AS2000plus которые пробовали восстановить "специалисты с улицы" сняв  диск и пытаясь его "вылечить" при помощи различных средств Windows. Как правило исход был: "специалист с улицы"  утилитами под Windows уничтожал  корневой раздел.  В результате мне уже в большей степени приходилось напрягаться чтобы восстановить систему, особенно когда еще и не имел  резервной копии данной системы.
Cтарые модели  SPARC-совместимых рабочих станций германской сборки  на которые установлена система AS2000plus как правило работают полнофункционально 8-12 лет.  В основном это зависит от условий эксплуатации. Они ремонто-пригодны, поэтому после ремонта как правило ресурс работы увеличивается. Более новые модели  SPARC-совместимых рабочих станций германской  сборки с системой  AS2000plus  должны иметь в потенциале более длительный срок работы, но есть и там  известные проблемы которые возникают как правило опять же из-за проблем с электропитанием или нарушением температурного режима работы. Также  надежность уменьшается от того что там используют IDE диски которые менее надежны чем  SCSI-диски ( которые были на старых моделях с AS2000+  ) для данных систем реального времени.
     На данный момент (2013 год), насколько мне известно системы AS2000plus еще производятся фирмой AMMANN, но только по заказу клиента. В основном же штатной системой для асфальтобетонных заводов сейчас является система AS1.
    Система  AS1 работает, в отличии от предыдущих систем,  под самыми распространенными для России операционными системами Windows от фирмы Microsoft. Отличие тут только в том что используемые здесь системы Windows работают с поддержкой реального масштаба времени . Это достигается при помощи инсталляции расширений реального времени для Windows от фирмы Ardence Incorporate  ( с 2008 года  вошла в компанию  IntervalZerо ).
Все преимущества и недостатки здесь определены в сущности в основном надежностью системы Windows, расширения же реального времени для Windows от фирмы  IntervalZerо  считаются довольно надежными. Правда надо отметить, что cпециалисты фирмы AMMANN  могут дистанционно обеспечить поддержку системы AS1,  при это надо чтобы был устойчивый канал в сеть Интернет. Проблемы из тех которые я видел, чаще всего возникают с базами данных. Здесь используется СУБД Microsoft SQL . Если же проблема с загрузкой системы Windows, то тогда в любом случае решать проблему нужно на месте.



Решение проблемы с MBR для системы AS1 завода фирмы AMMANN.
Решение c той проблемой с которой  я  сталкивался и разрешил здесь опишу.
После того как я включил компьютер клиента на которой установлена система AS1 на нем при загрузке появлялась вот такая картинка:


Случай довольно знакомый для тех кто работает с Windows.  Если проблема не коснулась таблицы разделов то восстановить систему не составит труда, особенно если учесть что на практике как правило проблемы возникают в повреждении загрузочного кода диска . Вот только у меня не было штатных LiveCD c Windows утилитами, поэтому нужно было выкручиваться тем  что имел с собой. К счастью у меня был лазерный диск с Ubuntu-11.04  desktop (Linux ) и с cобой я имел ноутбук с системой Ubuntu Linux, а также  и устройство для подключения IDE и SATA дисков  к нему. В компьютере с AS1  я обнаружил два жестких диска.  Как выяснилось дальше это
1. SystemDisc ( C:)
2. BackupDisc ( D:)
Подсоединил их по очереди к ноутбуку и скачал с них  данные c MBR. ( загрузочный код и таблица разделов )
dd if=/dev/hdc of=/path/mbr-backup bs=512 count=1
То есть на всякий случай зарезервировал  имеющийся MBR, чтобы в дальнейшем можно было  восстановить его  в случае если мои дальнейшие опыты закончатся неудачно.
Вернул жесткие диски на место в штатный компьютер AMMANN  загрузил UBUNTU-11.04 desktop  как Live CD.
Скачал с Интернет пакет  ms-sys версии 2.21 для Linux и инсталлировал его:
 make;  make-install
Далее я проверил  как определяется системый диск с системой AS1, ввел команду
sudo fdisk -l
( оказалось что /dev/hda )
Так как я предполагал что информация о таблице разделов не повреждена а поврежден только загрузочный код, то для восстановления загрузочного кода ввел команду:
ms-sys -m /dev/hda
Дальше я на свое счастье пытался загрузиться только с системного жесткого диска. Второй диск я отключил. Загрузка произошла, но при этом система управления заводом не работала. Я подключил к системе и второй диск и опять попытался загрузиться!  К своему удивлению я обнаружил что система не стала вообще загружаться! Я произвел те же операции со 2-диском по восстановлению MBR  как и с 1-диском и проблема была решена!  После этого система запустилась и стала работать!



Считывание данных с ADAM-5017H.

Для старых добрых и ушедших в историю версий Ultralogik ( еще 16-разрядных ) практически невозможна работа с платами ADAM-5017H при помощи штатных средств. То есть данные не считываются как положено. Для того чтобы решить эту проблему можно использовать нижеприведенную написанную много программу на языке Cи и обращаться к ее подпрограммам периодически для считывания данных.
Листинг данной подпрограммы можно видеть здесь.
 

/**************************************************************************/
/*  Program    :get5017h.c                          */
/*  Description    :Read  data from ADAM-5017h   for mysoft.plc      */

/**************************************************************************/

#include <5510drv.h>


void _pascal in5017h(int near *adr)
{
     int addr;
     addr = *adr;
     Init5017H(addr);

}


void _pascal rd5017h(int near *adr , int near *kolvo, int near *iai1, int near *iai2, int near *iai3, int near *iai4, int near *iai5, int near *iai6,
int near *iai7, int near *iai8)

{
     int j, addr, kollvo;
     int  aiv[8];
     kollvo = *kolvo;
     addr = *adr;
        for(j=0;j<8;j++)
         aiv[j] = 0;



    High_Speed();
     for(j=0;j<kollvo;j++)
      Get5017H_P1(addr,j,&(aiv[j]));
       Normal_speed();


         *iai1 = aiv[0];
         *iai2 = aiv[1];
         *iai3 = aiv[2];
         *iai4 = aiv[3];
         *iai5 = aiv[4];
         *iai6 = aiv[5];
         *iai7 = aiv[6];
         *iai8 = aiv[7];
}

/**************************************************************************/
Комментарий:
К примеру в моей программе  MYSOFT.PLC для считывания
данных из 5017H обращаться через функцию rd5017h
которая имеет 10 адресных переменных.
У меня плата 5017H  установлена в 4 слот. Так как нумерация
идет с нуля, то в данном случае в переменную c  адресом adr  нужно
из программы .MYSOFT.PLC записывать значение равное 3.
Кол-во входов которые необходимо опрашивать  записывается
в переменную с адресом в kollvo
Ну а значения которые входов платы 5017H уже попадают
в переменные тип  iaiN, где N номер аналогового канала.

    Для того чтобы правильно привязать объектный кода данной программы к объектному коду
основной программе MYSOFT.PLC с
необходимо откомпилировать в Тurbo C фирмы Borland при этом нужно чтобы:

1. Все родные библиотеки от Advantech для ADAM5510  ( *.LIB) обязательно в каталоге: С:\TC\LIB
а заголовочные файлы ( *.H) поместить в каталог: С:\TC\INCLUDE

2. Перед компиляцией этой программы Get5017H.c :
  a)  В Основных настройках  IDE установить: Model генерации кода: Compact.
  б) В Option  установить X только в самой верхней опции.
  в) В расширенных настройках:  Компиляция для процессора 80186,  сопроцессор в режиме
       эмуляции,  и в Option обязательно снять флажок с "Automatik far data"

Все что касается сборки программ ( Ultralogik16-программы  и Си-программы  )  должно  записываться
 в файл:  *.lnk   Сборку нужно будет осуществлять к примеру под c:\tc\bin\tlink.exe ( вообще определяется опциями plcwin.ini )
 В Ultralogik16  в качестве компилятора должен быть указан CPP - совместимый компилятор.

Пример файла:  MYSOFT.LNK  ( Это файл должен быть установлен с режимом только для чтения! )
-------------------------------------------
C:\TC\LIB\C0S.OBJ+
C:\PLCWIN\WORK\MY\MYSOFT.OBJ+
C:\TC\LIB\GET5017H.OBJ
C:\PLCWIN\WORK\MY\MYSOFT.EXE

C:\TC\LIB\UTILITYS.LIB+
C:\TC\LIB\HIOS.LIB+
emu maths C:\TC\LIB\CS.LIB
---------------------------------------------

Все ошибки при компиляции и линковке попадут в файл MYSOFT.MAP
(Обязательно проверять - есть ошибки или нет!)

В plcwin.ini  обязательно нужно проверить
есть ли такие позиции:
---------------------------------------------
[Linker]
Linker=c:\tc\bin\tlink.exe
CppStartUp=c:\tc\lib\c0s.obj
[Directories]
ObjFileSearch=c:\tc\lib
FbdLibraries=c:\plcwin\library
OemPlugIn=c:\plcwin\plugin
-----------------------------------------------

Вот вкратце и все!




НАЗАД                                 НА ГЛАВНУЮ                         КОНТАКТЫ