1,看不懂帮助里的自由协议例子,照着写了,串口调试,接受不到,,寻求一个例子
2.个人理解为。SMB30控制端口0的协议,16#49,表示偶校验,数据位8,9600波特率,自由口协议,XMT,发送,VB100=5,端口0,那么表示发送,VB101~VB105五个数据,同理CRV,
3.那什么时候发送/接收结束,发送/接收成功,发送/接收失败,怎么看,中断是必须的吗,
4.1个起始字符,7~8个数据字节,1个校验位,1个停止位,这些表示的是什么意思啊,自己编译什么协议,貌似是翻译什么的,assci码什么的,完全不明白。PLC发送的是8个0,1组合吗,PLC接收的又是什么?
回复内容:
对: shower861011 我这可以发送... 接受也是做不到! 内容的回复!
我只看得懂XMT,RCV,指令,用着USB转485通讯线和串口调试助手,都不知道,自己通讯没通讯上,反正,一直在刷数据
00 00 00 00,就这样,我写入VB100=5(发送五个数据),VB101,VB102,VB103,VB104,VB105,一些数值,按理说,PLC发送XMT时,串口应该可以接收到数据,但是没有。
请教楼主,SMB88,SMB89,起始字节,结束字节,假若我写SMB88=AA。SMB89=BB,SMB94=200,那么串口发送的格式应该是什么啊,0XAA *****0XBB,这样吗,那么中间字节是4位一个吗,完全不懂,要是想发送命令,置M0.0=1呢,
1)样例程序写的是根据收到的数据再发送,所以要先收到数据, 你只是开串口调试工具,没有给它发数据,它就不会返回数据。
2)理解正确, 需要注意XMT 要用边沿调用, 不要反复调用。
3) 通信的理解属于PLC的高级应用了, 可以通俗的把通信理解为机器的对话, 对话需要时间, A说话需要有开始,有结束,这个有个时间段, A说完之后B回复也有个中间响应时间, B的回复也有开始,也有结束, 中断是把这些时间点提取出来,
4) 正常的通信是用8位数据做为一个字节, 如果是ASCII 只采用其中的7位; 为验证这些数据位传输的是否正确,所以有了1个校验位; 字节到字节之间需要有间隙,所有就有了开始位和停止位;ASCII是计算机识别的一种编码规范, 规定了一些字符对应的16进制编码; 所有通信数据,最原始数据就是0 1 的组合, 从0 1 组合里面取出来数据的。