PDA

Просмотр полной версии : Передать дату и время с СП310 на ПЛК110 в формате децимал



Serhioromano
04.09.2018, 18:07
У меня связка панель и плк. Время важно так как есть расписание. Время можно выставить в панели. Но это время панели. Я сделал кнопку синхронизации времени. Нажимаем ее и в ПЛК, происходит присвоение новых значений времени. Для этого я в список переменных обмена передаю системные регистры времени.


Write(PLC, 1, MODBUS_RTU_REG_4X, 106, 0, TYPE_WORD, PSW[33]); // hour
Write(PLC, 1, MODBUS_RTU_REG_4X, 107, 0, TYPE_WORD, PSW[34]); // min
Write(PLC, 1, MODBUS_RTU_REG_4X, 108, 0, TYPE_WORD, PSW[31]); // month
Write(PLC, 1, MODBUS_RTU_REG_4X, 109, 0, TYPE_WORD, PSW[32]); // day
Write(PLC, 1, MODBUS_RTU_REG_4X, 110, 0, TYPE_WORD, PSW[30]); // year

Но данные хранятся в хексе. То есть 2018 в хексе а в децимал это будет 8216. Вот эти 8216 и передаются.

Вопрос, как мне сконвертировать перед отправкой, или уже на ПЛК что бы было получить переменную INT и значение 2018?

Евгений Кислов
04.09.2018, 18:13
У меня связка панель и плк. Время важно так как есть расписание. Время можно выставить в панели. Но это время панели. Я сделал кнопку синхронизации времени. Нажимаем ее и в ПЛК, происходит присвоение новых значений времени. Для этого я в список переменных обмена передаю системные регистры времени.


Write(PLC, 1, MODBUS_RTU_REG_4X, 106, 0, TYPE_WORD, PSW[33]); // hour
Write(PLC, 1, MODBUS_RTU_REG_4X, 107, 0, TYPE_WORD, PSW[34]); // min
Write(PLC, 1, MODBUS_RTU_REG_4X, 108, 0, TYPE_WORD, PSW[31]); // month
Write(PLC, 1, MODBUS_RTU_REG_4X, 109, 0, TYPE_WORD, PSW[32]); // day
Write(PLC, 1, MODBUS_RTU_REG_4X, 110, 0, TYPE_WORD, PSW[30]); // year

Но данные хранятся в хексе. То есть 2018 в хексе а в децимал это будет 8216. Вот эти 8216 и передаются.

Вопрос, как мне сконвертировать перед отправкой, или уже на ПЛК что бы было получить переменную INT и значение 2018?

Добрый день. В РП есть примеры конвертации - п. 8.5.

Serhioromano
04.09.2018, 18:41
Спасибо, все работает.