最近在搞单片机(stc)与触摸屏(samkoon)的通讯,打算使用常规的modbus rtu协议。在看了好几天的资料后,遇到一个不明白的问题,想请教一下各位大神。
本来触摸屏本身是用来和PLC连接,作为人机交互用的,使用很简单,设置各种控件,设置控件的监视地址或者写入地址就可以了(应该没错吧)。但是现在用单片机去与触摸屏通讯时,这个地址的问题就困扰我了。
在触摸屏的地址写入栏里,其地址是由两部分构成的:X(Y,M,C,T或者I,Q,V)+具体地址值(具体数字);(X/Y/M是输入线圈,输出线圈,中间继电器的意思)
如果是与plc通讯,那么modbus的格式怎么写呢?本人觉得应该是:从机地址+功能码+数据+校验码,而且这个功能码正是由触摸屏地址写入栏里的第一部分决定的。
问题1:如果这的是这样,有足够多的功能码代表X,Y,M,C,T,D,C*,T*吗?而且还是一读一写两种状态。望指教或给出资料
X代表输入线圈的地址;Y代表输出线圈的地址;M代表中间继电器的地址;C代表计数器地址(开关状态显示);T代表定时器地址(开关状态显示);D代表数据寄存器的地址;C*代表计数器地址(计数值);T*代表定时器地址(计数值)。
问题2,回到单片机的实现上来。触摸屏总共的设置是固定的,那么在单片机中是不是应该开辟一大片内存,然后分成足够多的份,每一份对应与相应的功能码。
例如功能码01是读单个线圈的状态,对应单片机,应该是读取某个I/O的状态。那么把所有的IO口状态存储在第?份内存之中,然后再依据约定好的规则,按触摸屏传来的地址读取这个内存的值。
(如X5是代表读第?份内存中第五位的值,而且约定这个第五位就是P0.4的状态)
请问我的理解对吗?望各位赐教啊。。。
一周热门 更多>