Thread Content
На станции обработки сточных вод компании используется контроллер Siemens PLC300, который связан с системой DCS для отображения показателей. Существует параметр давления в диапазоне от -0,1 до -0,2 МПа. Однако фактическое давление составляет -0,05 МПа. На экране DCS постоянно отображается значение 0. При анализе программы настроек контроллера выяснилось, что измеряемое значение сначала умножается на 10, в результате чего получается -0,5. Затем это значение преобразуется с помощью функции TRUNC в двоичное целое число, и в итоге также получается значение 0. Поэтому я решил умножить измеряемое значение на 100; в результате получилось значение -5. Но при передаче данных в DCS отображается значение 65535 Кто-нибудь знает?
65535, кажется, у вас переполнение данных. Раз уже TRUC, то это должен быть целочисленный тип 16 бит, что за DW? Лучше было бы отправить скриншот программы.
Вы передаете значение 300 в DCS. Для удобства передачи отрицательных значений используются значения -0,1 МПа и -0,2 МПа. Желательно умножить их на 10 000, чтобы получить диапазон от -1000 до +2000. Затем добавить 1000, тем самым получив диапазон от 0 до 3000. После этого переменную типа real необходимо преобразовать в тип dint; ещё лучше — в тип int. После передачи данных в DCS их снова нужно будет преобразовать обратно.
Вот так: если передавать исходные значения с помощью PLC AI, а затем выполнять соответствующую конвертацию в DCS, это будет лучше!
Вероятно, произошел переполнение данных, но неясно, почему
Это действительно хороший вариант. Можно попробовать что-то изменить позже
Тогда всё равно придётся тянуть кабели, это довольно хлопотно.
Разве вы не работаете в сфере связи? Это тоже связь — просто исходные значения передаются до стандартизации ИИ, и для этого не нужны кабели
То есть передавать входные данные ИИ (значения от 0 до 27648) напрямую?
Да, лучше снова произвести преобразование в соответствии с диапазоном