PLC串口通讯原理
PLC和其它通讯设备通讯,串口方式通讯。有些问题不是明白,请教。比如PLC和VB应该程序通讯,MSCOMMON控件。它发送一些指令,类似“@00WJ00214002”。来...
PLC和其它通讯设备通讯,串口方式通讯。有些问题不是明白,请教。
比如PLC和VB应该程序通讯,MSCOMMON控件。它发送一些指令,类似“@00WJ00214002”。来控制PLC内部的寄存器。
下面是自己的一些理解和疑问:
1.串口其实是不停的发送0或1的值。这个好象是个什么8位编码吧。比如@对应一个16进编码23(只是比如),就是0010 0011.上面指令的每一个字符都转化成这样的0和1 。然后一个一个发出去。 这是我的理解,不知道对不对。
2.然后发送每个0或1是需要时间间隔的。1秒钟发出去的0和1的个数就是波特率的数值了。所以说波特率就是每个0和1发送时间间隔的量度。改变波特率就是改变01发送的时间间隔。
3.假如在PLC发送数据时。我不能想控制波特率。还想控制每个字符的发送间隔时间。
打个比方:假如A的编码是00000000 B的编码是11111111,我想发送ABABAB,但我不只想控制波特率,我还想控制A和B的发送时间间隔,这样能实现吗?
4,波特率为什么是2400 4800 9600.。。。等,而不是500 1000 2000等整数呢?是不是和它的起源有关啊。常识问题了,只是好奇。
请高手朋友指点。谢谢。 展开
比如PLC和VB应该程序通讯,MSCOMMON控件。它发送一些指令,类似“@00WJ00214002”。来控制PLC内部的寄存器。
下面是自己的一些理解和疑问:
1.串口其实是不停的发送0或1的值。这个好象是个什么8位编码吧。比如@对应一个16进编码23(只是比如),就是0010 0011.上面指令的每一个字符都转化成这样的0和1 。然后一个一个发出去。 这是我的理解,不知道对不对。
2.然后发送每个0或1是需要时间间隔的。1秒钟发出去的0和1的个数就是波特率的数值了。所以说波特率就是每个0和1发送时间间隔的量度。改变波特率就是改变01发送的时间间隔。
3.假如在PLC发送数据时。我不能想控制波特率。还想控制每个字符的发送间隔时间。
打个比方:假如A的编码是00000000 B的编码是11111111,我想发送ABABAB,但我不只想控制波特率,我还想控制A和B的发送时间间隔,这样能实现吗?
4,波特率为什么是2400 4800 9600.。。。等,而不是500 1000 2000等整数呢?是不是和它的起源有关啊。常识问题了,只是好奇。
请高手朋友指点。谢谢。 展开
3个回答
展开全部
1.这么理解没有问题,虽然在PC和PLC上都用的是16进制进行显示和计算,但实际上串口物理层的通讯是以0和1的脉冲形式来进行的。
2.你所谓的时间间隔就是指的波特率,每秒钟可以发几个脉冲的意思,改变波特率就是改变脉冲的发送频率
3.波特率一旦双方设定完毕就不能改变了,除非双方都有可以让软件修改硬件设置参数的功能,如果要改变字符与字符之间的发送时间间隔,就只能用程序来实现,每两个字符之间加个延时功能即可
4.这个我没有研究过,可能是和内部的元器件自身的性质有关吧,设置这几种对硬件来说可能比较好计算,个人理解
2.你所谓的时间间隔就是指的波特率,每秒钟可以发几个脉冲的意思,改变波特率就是改变脉冲的发送频率
3.波特率一旦双方设定完毕就不能改变了,除非双方都有可以让软件修改硬件设置参数的功能,如果要改变字符与字符之间的发送时间间隔,就只能用程序来实现,每两个字符之间加个延时功能即可
4.这个我没有研究过,可能是和内部的元器件自身的性质有关吧,设置这几种对硬件来说可能比较好计算,个人理解
展开全部
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
波特率同数据位和停止位一起规定了串口物理层发送数据的方式。详见串口通讯原理。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询