Программа, контролирующая температуру, может использовать аналоговые значения температур, или дискретные сигналы превышения или снижения температуры относительно заданного значения. Соответственно, для этого могут быть задействованы как аналоговые входы контроллера, так и дискретные. Причем аналоговое значение температуры может быть получено двумя способами: в целочисленном виде при подключении аналоговых датчиков к обычным входам аналого-цифрового преобразователя (АЦП) и в градусах Цельсия при подключении к специальным входам измерения температуры. Специальные входы измерения температуры тоже являются входами АЦП, но, в отличие от обычных аналоговых входов, преобразование полученных от АЦП целочисленных значений в градусы Цельсия производится программой пересчета таблицы. В этом случае в табличной ячейке состояния входа будет записана температура в градусах Цельсия, а не целочисленное значение с АЦП. Подключение температурных датчиков к обычным аналоговым входам потребует либо дополнительной обработки значений в табличной программе, либо использования в расчетах целочисленных значений от аналого-цифрового преобразователя, по которым быстро определить реальное значение температуры достаточно сложно. При любом из этих решений табличная программа потеряет прозрачность, что, в свою очередь, усложнит дальнейшее обслуживание и ремонт оборудования. Использование простых аналоговых входов для измерения температуры — это возможное, но не лучшее решение.
При необходимости контролировать пороговые значения температуры наиболее простым способом будет использование дискретных датчиков, настроенных на определенную температуру. В отличие от тепловых реле с биметаллической пластиной и гистерезисом в 7 °C и более, датчики температуры имеют гистерезис около 1 °C. Для их подключения используются обычные дискретные входы контроллера. Чтобы однозначно зафиксировать превышение порогового значения, можно добавить таймер с задержкой на включение. Если датчик будет находиться во включенном состоянии больше установленного времени, то результат запишется в активные ячейки.
Пример программы, включающей вентилятор охлаждения при срабатывании дискретного температурного датчика, показан в таблице «а» на рис. 60. В момент срабатывания датчика температуры начинается отсчет времени таймеров TON в строке 2 и TOF в строке 3. Если датчик температуры остается включенным больше 5 секунд, то включается вентилятор охлаждения. Если работающий в течение 20 секунд вентилятор не смог понизить температуру, то выходной сигнал «разрешение работы» переходит в ноль. Для того чтобы вентилятор не выключался сразу же после отключения датчика температуры, а продолжал работать еще некоторое время, можно использовать триггерные ячейки. Такой вариант программы показан в таблице «б» на рис. 60. В этом случае управление вентилятором осуществляется ячейками «S» и «R». При срабатывании датчика температуры, как и в предыдущем случае, начинается отсчет времени таймеров. Через 5 секунд при включенном датчике активная триггерная ячейка «S» в строке 2 запускает вентилятор охлаждения. Если в предыдущем случае при выключении реле температуры вентилятор отключался сразу, то здесь после отключения реле вентилятор будет работать еще 15 секунд. Такая задержка будет сформирована таймером TON в строке 4 (рис. 60, «б»).
Пример использования простых аналоговых входов для измерения температуры показан на рис. 61. Независимо от типа аналогового датчика измеряемая температура может быть преобразована в электрический сигнал, напряжение которого будет функцией от температуры, измеряемой датчиком. Напряжение с датчика температуры поступает на аналоговый вход контроллера. Аналого-цифровой преобразователь, подключенный к этому входу, преобразует измеряемое напряжение в целочисленное значение, разрядность которого будет определяться разрядностью АЦП. К примеру, если разрядность АЦП — 12 бит, то минимальное получаемое значение будет ноль, а максимальное — 4095. Опытным путем или с помощью таблиц и вычислений мы можем найти, какие значения, получаемые с АЦП, соответствуют интересующим нас температурам.