发表于:2007/11/2 13:24:00
#0楼
大家好,我打算采用MUDBUS协议来实现PLC与DSP的通信,由于一些原因我必须把PLC作为主站,在STEP 7 MicroWIN V4.0 SP4中我调用了MUDBUS RTU主站指令库。我想请教大家的是,当PLC要读DSP的寄存器中的值时,DSP回传数据帧后,这些数据会保存在PLC的寄存器中,那么如果是调用MUDBUS RTU主站指令库,PLC是不是自动的完成对数据帧的解包,也就是直接将要读取的数据放在指定的寄存器中?
我要做的通信过程是这样的:
DSP传给PLC一些故障的信息和数据,PLC把这些数据放到指定的寄存器中,这些指定的寄存器与触摸屏的一些寄存器一一对应,然后在屏上显示
由于我使用了MODBUS协议,我想用定义好的功能码03和06以及16
这个保持寄存器我想能不能把DSP中的寄存器做个映射,比如DSP的地址0x0001对应的是MODBUS地址的40001,那么我要读0x0001的值,我访问40001就可以了
因此我定的协议是这样的:
PLC发的数据格式依次为 站地址、功能码、要读从站的首地址(即40001,而不是0x0001)、数据个数、校验码
而DSP给我回传的数据格式依次是:站地址、数据个数、数据、校验码
我的想法是这样的 :我们先固定好什么样的故障信息放入指定的寄存器 我要读故障信息 直接读这些地址就可以了 把这些信息读回我PLC的寄存器 由于已经做了规定 我自然知道这些数据是什么样的故障 那么PLC这方就不用做判断了
我再把这些数据传到与触摸屏对应的寄存器中 ,供触摸屏读取来显示
整个通信过程就是这样的了 ,因为从来没做过,网上也找不到类似的资料,大家帮忙看看能不能实现啊?
我要做的通信过程是这样的:
DSP传给PLC一些故障的信息和数据,PLC把这些数据放到指定的寄存器中,这些指定的寄存器与触摸屏的一些寄存器一一对应,然后在屏上显示
由于我使用了MODBUS协议,我想用定义好的功能码03和06以及16
这个保持寄存器我想能不能把DSP中的寄存器做个映射,比如DSP的地址0x0001对应的是MODBUS地址的40001,那么我要读0x0001的值,我访问40001就可以了
因此我定的协议是这样的:
PLC发的数据格式依次为 站地址、功能码、要读从站的首地址(即40001,而不是0x0001)、数据个数、校验码
而DSP给我回传的数据格式依次是:站地址、数据个数、数据、校验码
我的想法是这样的 :我们先固定好什么样的故障信息放入指定的寄存器 我要读故障信息 直接读这些地址就可以了 把这些信息读回我PLC的寄存器 由于已经做了规定 我自然知道这些数据是什么样的故障 那么PLC这方就不用做判断了
我再把这些数据传到与触摸屏对应的寄存器中 ,供触摸屏读取来显示
整个通信过程就是这样的了 ,因为从来没做过,网上也找不到类似的资料,大家帮忙看看能不能实现啊?