А есть какая-нибудь литература по ST? А то действительно, CFC понятный, но громоздкий.
Вид для печати
А есть какая-нибудь литература по ST? А то действительно, CFC понятный, но громоздкий.
Об этом много раз говорили на форуме. Пожалуйста, в следующий раз пользуйтесь поиском.
"Петров И.В. (2004) Программируемые контроллеры. Стандартные языки и приемы прикладного проектирования"
http://lib-bkm.ru/load/1-1-0-56
Пытаюсь создать этот блок.
Подскажите, что не так делаю?Вложение 12885
array of для наработок
В объявлениях (VAR) нужно написать:
narabotki:ARRAY[0..n] OF DINT;
Так объявляется массив. В данном случае - набор переменных типа DINT, обращение к которым происходит по индексу от 0 до n (В объявлении вместо n поставить максимальный индекс). И почему вы используете тип DINT? Так как время наработки всегда неотрицательно, лучше возьмите DWORD, получите вдвое большее макс. значение. Чтобы увидеть справку по целочисленным типам, ставьте курсор на слово с типом данных и жмите F1. Вообще, смотрите в справке, там всё описано. :)
P. S. DWORD - неотрицательный тип, имеет полный диапазон, представляемый четырьмя байтами, то есть переменная может принимать значения от 0 до 4294967295. Если у вас время представлено в миллисекундах, то максимальный отрезок времени, который можно хранить в четырёхбайтовой переменной - около 49 суток, после чего диапазон переполнится и всё начнётся с нуля. Если нужно больше, можно написать собственный тип данных, или же сразу переводить в секунды например или в минуты, в зависимости от того, какая точность требуется.
Я интуитивно догадываюсь, но хотелось бы уточнить...:rolleyes: так это должно выглядеть?Вложение 12892
Просто с совсем новичок в этом деле.
Сразу желательно определиться какие будут входы и выходы у вашего ФБ, чтобы его удобно можно было использовать. Сколько у вас двигателей? Если двигателей много, то может есть смысл сделать массив, элементами которого будет структура, состоящая из двух переменных: номер двигателя и его наработка. Тогда наработка будет привязана к конктерному двигателю, а не к индексу массива и элементы в массиве можно менять местами при необходимости (например если надо будет отсортировать массив по возрастанию времени наработки).
Не совсем. Массив должен быть от 0 до n, где n= количеству насосов.
Массив можно сделать с небольшим запасом, например 10, а n оставить в программе и менять количество насосов до 11. Ну не столько же 4 c чем-то миллиардов :)
А вот значение minimal можно сделать не DINT а DWORD, увеличив тем самым то, о чем говорил Boris_K