Several MODBUS transactions can be activated simultaneously on the same TCP Connection.
Remark: If this is done then the MODBUS transaction identifier must be used to uniquely identify the matching requests and responses.

The transaction identifier is used to associate the future response with the request.
So, at a time, on a TCP connection, this identifier must be unique. There are
several manners to use the transaction identifier:
- For example, it can be used as a simple "TCP sequence number" with a
counter which is incremented at each request.
- It can also be judiciously used as a smart index or pointer to identify a
transaction context in order to memorize the current remote server and the
pending MODBUS request.

Ну, с чего начинать ID транзакции с 0 или с 1 не сказано. Выше цитаты из протокола, но как писал ранее, за несколько лет столкнулись только с одним устройством, которое требовало наличие ID транзакций и не отвечало, когда оно было равным нулю. И мало того, не отвечало на повторный ID если ответ был передан.