По поводу 1-го, я не был бы так категоричен.
Нули получаются благодаря специфике загрузки ПЛК. Много раз об этом писали на форуме.
В общем, чтобы нулей не было нужно в программе пользователя делать инициализацию переменных при старте. И все проблемы будут решены.