恭喜,你发布的帖子
发布于 2023-09-15 13:58:24
4楼
哈哈哈,很想到你那边来喝茶,也可以喝酒俩那种都行。
对你的理解我加强一下。
EN:可以长通,如SM0.0(NO),也可以是First管脚同一个标志位,指令运行期间,必须是ON状态。
First:只能的沿方式触发,在触发后,必须等待done位为1后,才可以进行第二次触发。
Slave:指通讯从站站地址,根据实际的从站设置,保持一致。通讯系统中只能是唯一的这个地址。
RW: 0 = 读、 1 = 写,2选1
ADDR:数据区,各区都有自己的划分,理解功能码,就理解这个管脚的填写。
count:与ADDR必须是匹配着的,功能码是那个,如西门子读写线圈和输入、输出分别是0和1,模拟量在3、寄存器在4字头,这个是划分好的区域。强调这些就可以理解count到底是指bool,还是int数据了,其中,0和1均指bool,模拟量、寄存器均指int(16bool)。
data_ptr:这个管脚是指与ADDR和count匹配的数据长度,是被动放。长度有ADDR和count决定。
done: 0 = 空闲或者正在通讯,1 = 的那个周期,指令执行完成,无论通讯是否正常。
error:错误代码,0 = 没有错误,其它数据根据手册说明看具体报警信息内容。
强调:
data_ptr:这个只能是指针来完成,ADDR和count是2个管脚来描述,读、写数据长度的,而data_ptr只能一个管脚来说明数据长度,而200smart是数据长度最长只能是32位,也就是说count最大只能写到2,超过数字2就放不下?显然不会这样做,这个管脚巧妙的应用了指针,这样所有的长度都可以放了。
还有一点,是与RW有关的,如果RW = 0,那么上面所指定的数据长度的数据是读进来的;反之,RW = 1,则是发送给从站去的数据区。
哦,对了,非常欣赏你的执着。做技术就是需要这样最基本的执着才可以。
请填写推广理由:
分享
只看
楼主