ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Четверг
21 ноября
1419333 Топик полностью
IBAH (26.03.2024 14:37, просмотров: 228) ответил Make_Pic на Хочу задать здесь вопрос по теме написания программного ядра (основной программы с нуля и пользовательской подгружаемой) специализированного промышленного контроллера. Хочу услышать советы, ваше мнение по данному вопросу: Имеется пром. контроллер выполненный на STM32F407, также имеются дискретные порты ввода/вывода (включая инкрементальные), аналоговые вводы/выводы (токовые, напряжения), MODBUS RTU/TCP - Как лучше написать пользовательскую программу управления объектом
Я свой метод уже упоминал. Надо изучить язык ST(FBD) и писать на Си пользуясь той же парадигмой. Например, вот так я вызываю регулятор в главном цикле 
{//регулятор печи П11
P11.PRegul=Eeprom.PRegul_P11;//Пропорциональный коэф 0.1%/ГрС
P11.IRegulP=Eeprom.IRegulP_P11;//Интегральный коэф 0.001%/(ГрС*Сек)
P11.DRegul=Eeprom.DRegul_P11;//Дифферинциальный коэффициент 0.1%*Сек/ГрС
P11.HeatSet=Eeprom.HeatSet_P11;//Уставка нагревателя %
P11.TempSet=Eeprom.TempSet_P11;//уставка температуры 0.1ГрС
P11.Temp=TP11;//текущая температура 0.1ГрС
P11.TempPorog=Eeprom.TempPorog_P11;//ограничение ошибки интегрального звена
P11.TempPorogZn=Eeprom.TempPorogZn_P11;// Зона нечувствительности диф. звена 0.1ГрС
P11.Heat1Temp=Eeprom.Heat1Temp_P11;//значение температуры 0.1ГрС для ограничения нагревателя
P11.Heat1=Eeprom.Heat1_P11;//значение ограничения нагревателя
P11.Heat2Temp=Eeprom.Heat2Temp_P11;//значение температуры 0.1ГрС для ограничения нагревателя
P11.Heat2=Eeprom.Heat2_P11;//значение ограничения нагревателя
P11.d100=OutDat100Hz;//датчик 100Гц
P11.ErrIn=ErrDat100Hz||(MBErrTP11)||(SostTP11);//ошибка внешняя
P11.En=RegSost.EnP11;//включить
P11.LenOhibPointer=Eeprom.LenOhibPointer_P11;//Интервал дифференцирования
TermodatMain(&P11);
Eeprom.LenOhibPointer_P11=P11.LenOhibPointer;//Интервал дифференцирования
UprP11=P11.Out;//выход управления твердотельным реле
RegSost.ErrP11=P11.Err;//ошибка выход
RegSost.EnP11=P11.En;//включить
}


https://www.codesys.ru/docs/st_c.pdf