问题描述
C#编程,通过串口发送命令给伺服电机带动伺服电机动作。因为牵扯到多台伺服协调,所以选用CAN总线控制,这样就要用到伺服电机设定地址,伺服本身自带地址设定的。新人,对这个不熟悉,求指点。求高人指导编程思想,怎么在编程里设置地址,根据地址发送命令
解决方案
解决方案二:
C#做个界面->通过串口按照协议发命令->伺服电机
解决方案三:
引用1楼Cnwanglin的回复:
C#做个界面->通过串口按照协议发命令->伺服电机
这说了我还是不懂啊,新人,不知道具体怎么操作啊。。。能不能给个大致的代码?
解决方案四:
网上找个C#串口源码,下载先看一下。
解决方案五:
你先把一台设备玩明白了再想多台怎么弄吧不会走就想跑?操作多台,也不过就是在一台的基础上,加个数组来存这些地址罢了至于数组是在程序里写死,还是可以用xml文件配置好了读取,就看你想怎么用了
解决方案六:
你对串口通信完全不了解的话,我在这里说再多也没用,我又不知道你所谓的CAN协议到底是个什么格式想求源码改都不用改,不现实.至于所谓在程序中设定地址,其实就是动态拼接个byte数组,当指令send出去么你想把命令发给谁,数组中在指定位置指定个Int就行了
解决方案七:
我有串口代码的例子,可以发给你
解决方案八:
留个邮箱给我
解决方案九:
其实所有的一切归根结底都是数字,协议即是按照一定的格式拼接的一串数字,不同的位置代表不同的意思,比如MODBUS通信时有类似:01030200010002XXXX,这就是一个帧数据,代表地址01,03读寄存器,02代表有2个数据,00010002为数据,后面的XXXX代表前面数字的CRC值,这些数据可以是串口传输或者TCP传输,当然看你的硬件是如何的了。这是个例子,不清楚可以给我留言。
解决方案十:
大神论技术,牛啊牛
解决方案十一:
额串口通信很简单serialport类但是C#的can总线通信就不太懂了
解决方案十二:
怎么又是串口又是CanBus?拓扑结构到底是怎样的?无论那种,伺服电机都是需要单片机的,地址硬编码在单片机里作为区分设备的标识,串口没有规定地址,地址要自己在协议里规定,可以参考modlebus协议。Can总线标准帧地址为11位,最大0-2047