medvedits Точно в сторону порядка байт. И ещё в сторону того, чтобы решить что же надо: портрет или строка?
Строку можно составлять по словам из двух байтов и писать как несколько отдельных блоков регистров: 2 символа, 2 символа и так далее.
Вид для печати
medvedits Точно в сторону порядка байт. И ещё в сторону того, чтобы решить что же надо: портрет или строка?
Строку можно составлять по словам из двух байтов и писать как несколько отдельных блоков регистров: 2 символа, 2 символа и так далее.
Простите, я правильно понимаю, чтобы записать число в старшие разряды нужно использовать второй регистр со следующим адресом 4251?
Просто пробовал через ОРС сервер писать с типом uint32 и число выводит как надо, а вот через пр200 при присвоении целочисленной переменной на сми2-м ничего не выводит при любых данных(пробовал битовые маски в DEC для нескольких чисел от 7 до 325 и разные символы). при этом если переменную сделать с плавающей точкой, то изображение на сми меняется, но не так как надо.
Может нужно в пр200 использовать float и определённым образом менять порядок байт?
Да, всё верно.Цитата:
Простите, я правильно понимаю, чтобы записать число в старшие разряды нужно использовать второй регистр со следующим адресом 4251?
Значения регистров 4250-4251 нужно изменять одним запросом, потому что с точки зрения индикатора - это один параметр, занимающий два регистра.
Я не понимаю, что именно вы подразумеваете под этой фразой.Цитата:
пробовал битовые маски в DEC для нескольких чисел от 7 до 325 и разные символы)
Моя рекомендация не изменилась:
ПР200 не знает строку как тип данных, изначально на сми2 была строка разбитая на 2 регистра, но на сми2-м так нельзя, туда только string через ПЛК/СПК выводить. Очень специфично работает там вывод строки, её при обращении нужно писать целиком (все 16 регистров),иначе по личному опыту ничего не выводится на сми2-м
я пробовал выводить в регистр 4250 целочисленные переменные, но у меня естественно на сми2-м ничего не менялось.
Изначально было организовано так
Вложение 58637
Но я подумал что там может быть переполнение и пробовал просто целочисленную переменную выводить,тоже не получилось. а вот константу просто не проверял. попробую разделить на 2 регистра тогда число со смещением на 8 разрядов и отдельно просто константу записать.
внутри функции такого рода
function simbol1: udint; //имя функции и тип данных выхода
var_input //объявление входных переменных
inputrezhim : udint; //входная переменная
end_var
case inputrezhim of
0:
simbol1:=121;
1:
simbol1:=120;
2:
simbol1:=80;
end_case
end_function
Блин. А я с ПР102 вообще СМИшку даже опросить не могу )) Хотел пример сделать )) А она не опрашивается даже по этим регистрам (но это я не умею на ПРках - может делать что не так в плане настроек и опроса).
Ой.. может в будущем это поправить тоже потом? Для ПРок как раз: они же не умеют так писать, они могут писать только одну переменную типа INT/FLOAT.Цитата:
Значения регистров 4250-4251 нужно изменять одним запросом, потому что с точки зрения индикатора - это один параметр, занимающий два регистра.
Это неправда.Цитата:
Для ПРок как раз: они же не умеют так писать, они могут писать только одну переменную типа INT/FLOAT
Вложение 58638
А если больше надо? Для бегущей строки? Или это Overkill?