Помогите преобразовать
Добавлено: 24 сен 2018, 18:12
Помогите пожалуйста!
Имеется удаленный модуль с 4 входами, соединяется с контроллером по RS485 через modbus
О замкнутых контактах на входе модуль сообщает Битовой маской значений входов, он присылает число от 0 до 15
где 0 - нет замкнутых контактов, 15 замкнуты все поясняю:
Присылаемое число 1 - замкнут контакт номер 1 что соответствует (в двоичной системе) - 1
Присылаемое число 2 - замкнут контакт номер 2 что соответствует (в двоичной системе) - 10
Присылаемое число 3 - замкнут контакт номер 1 и 2 что соответствует (в двоичной системе) - 11
Присылаемое число 4 - замкнут контакт номер 1 что соответствует (в двоичной системе) -100
Присылаемое число 8 - замкнут контакт номер 1 что соответствует (в двоичной системе) - 1000
.....
Присылаемое число 15 замкнуты все контакты что соответствует (в двоичной системе) - 1111
т.е. кажый контакт соответствует 0 или 1 у входа контакта модуля, и это регистр у двоичного числа
Так вот ....
Помогите как мне из полученного числа "Х" (в десятичной системе) перевести его в двоичную и понять 1 или 0 стоит в соответствующем регистре?
Примерно это должно выглядеть как то так (в SCL):
Вход1:= Взять_регистр 1 ( Преобразовать_в_двоичный код (Х) )
Вход2:= Взять_регистр 2 ( Преобразовать_в_двоичный код (Х) )
Вход3:= Взять_регистр 3 ( Преобразовать_в_двоичный код (Х) )
Вход4:= Взять_регистр 4 ( Преобразовать_в_двоичный код (Х) )
где Вход тип (bool), а у X тип (int)
Пожалуйста помогите как это записать в SCL?
Имеется удаленный модуль с 4 входами, соединяется с контроллером по RS485 через modbus
О замкнутых контактах на входе модуль сообщает Битовой маской значений входов, он присылает число от 0 до 15
где 0 - нет замкнутых контактов, 15 замкнуты все поясняю:
Присылаемое число 1 - замкнут контакт номер 1 что соответствует (в двоичной системе) - 1
Присылаемое число 2 - замкнут контакт номер 2 что соответствует (в двоичной системе) - 10
Присылаемое число 3 - замкнут контакт номер 1 и 2 что соответствует (в двоичной системе) - 11
Присылаемое число 4 - замкнут контакт номер 1 что соответствует (в двоичной системе) -100
Присылаемое число 8 - замкнут контакт номер 1 что соответствует (в двоичной системе) - 1000
.....
Присылаемое число 15 замкнуты все контакты что соответствует (в двоичной системе) - 1111
т.е. кажый контакт соответствует 0 или 1 у входа контакта модуля, и это регистр у двоичного числа
Так вот ....
Помогите как мне из полученного числа "Х" (в десятичной системе) перевести его в двоичную и понять 1 или 0 стоит в соответствующем регистре?
Примерно это должно выглядеть как то так (в SCL):
Вход1:= Взять_регистр 1 ( Преобразовать_в_двоичный код (Х) )
Вход2:= Взять_регистр 2 ( Преобразовать_в_двоичный код (Х) )
Вход3:= Взять_регистр 3 ( Преобразовать_в_двоичный код (Х) )
Вход4:= Взять_регистр 4 ( Преобразовать_в_двоичный код (Х) )
где Вход тип (bool), а у X тип (int)
Пожалуйста помогите как это записать в SCL?