硬件狗买好了。仪表的MODBUS地址为4,9600波特率,8数据位,无校验,1停止位。
CP341和仪表MODBUS通讯,读取仪表的电量(十进制地址352),A相电流(十进制地址369),B相电流(十进制地址370),C相电流(十进制地址371),写一个电量报警阈值(十进制地址589),
疑问1:读数据是不是需要调用FB7和FB8,写数据只需要调用FB8?
疑问2:发送数据块为DB1,接收数据块为DB2。
FB7、FB8中的DBB_NO=0表示从数据块字节0开始写从站MODBUS地址,功能码等
比如DB1.DBB0=W#16#4,DB1.DBB1=W#16#10,DB2.DBB0=W#16#4,DB2.DBB1=W#16#10
如果读数据需调用FB7和FB8,那么发送和接收数据块前面几个字节是不是一样呢,比如:
DB1.DBB0=W#16#4(MODBUS地址)||DB2.DBB0=W#16#4
DB1.DBB1=W#16#3(功能码为03)|| DB2.DBB1=W#16#3
DB1.DBW2=369(读从站369地址开始的数据)|| DB2.DBW2=369
DB1.DBW4=3(读从站3个字)|| DB2.DBW4=3
疑问3:那么接收到的数据存放在哪呢?是不是从DB2.DBW6开始的6个字节(3个字)
疑问4:写数据块FB8中的LEN对应功能码03为6,对应功能码16位大于6,这个LEN和数据块中的
DB1.DBW4(读写寄存器数量)不一样,那它是定义什么用的?跟数据块有什么关系?
疑问5:那么写的数据存放在哪呢?是不是从DB1.DBW6开始呢?