工控干货.docx
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《工控干货.docx》由会员分享,可在线阅读,更多相关《工控干货.docx(42页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、工控干货工控干货|SMC304运动控制器之间的CAN总线级联方法导语:工控干货|SMC304运动控制器之间的CAN总线级联方法一CAN总线实时令牌网1.CAN总线的特点CAN总线ControllerAreaNet是一种有效支持分布式控制的串行通讯网络。它是由德国Bosch公司为汽车的监测、控制系统而设计,由于其具有卓越的特性及极高的可靠性,后来广泛应用于工业经过监控设备的互连。CAN总线只定义了ISO/OSI模型中的第一层物理层和第二层数据链路层,其物理拓扑如图1所示。CAN总线主要特点有:1采用差分传输,抗干扰性强;2采用短帧构造和CRC校验等检错措施,出错概率低;3采用基于优先权的非破坏性
2、总线仲裁技术,可工作于多主、一对一、一对多及全局播送方式传送接收数据;4通讯间隔随波特率而变,典型值为10km5kb/s、40m1Mb/s。2.令牌总线简介令牌总线网络的逻辑拓扑如图2所示。所有连接在令牌总线上的站点在逻辑上构成一个首尾相连的环,每个站点都知道自己的前导站PS和后继站NS。令牌实际上是一个采用特殊编码的控制帧。网络上只有一个令牌沿逻辑环传递,得到令牌的站才能发送数据,然后把令牌向下传。在正常运行时,令牌按照站点地址的序列号从一个站点传送到另外一个站点。这样,这个令牌实际上是按照逻辑环而不是物理环进展传递。在数字序列的最后一个站点将令牌返回到第一个站点。令牌通讯机制的优点是任何时
3、刻网络中只有一对节点在进展通讯,完全杜绝多节点通讯冲突的情况。二SMC304运动控制器CAN总线令牌网及指令1.雷赛CAN总线令牌网的通讯机制SMC304运动控制器可以通过CAN总线和另外的SMC304运动控制器或者雷赛其他型号的运动控制器连接,形成一个多站点的CAN总线运动控制系统,采用令牌通讯机制实现各站点之间的数据交换。与一般令牌网不同,雷赛CAN总线令牌网中有一个主站,负责令牌传递的治理,防止令牌丧失,以进步通讯的可靠性。在雷赛CAN总线实时令牌网上可以发送4类数据:位、字、双字、浮点类数据。通讯流程如下:第一步,主站按周期将本站的存放器数据表中的数据发送给其它各站点;之后往一个从站发
4、送令牌消息;第二步,从站接收到令牌后,将本站存放器数据表中的数据发送给其它各站点;之后往主站发送释放令牌的消息;第三步,主站接收到一个从站令牌释放消息后,往下一个从站发送令牌消息;然后回到第二步,直到所有站点数据都已经发送完成;第四步,主站周期时间到达后重复以上流程。以上通讯经过都是在BASIC程序后台进展,不需要用户编程治理。用户需要在程序中首先初始化用于数据通讯的存放器数据表,设置通讯周期、介入通讯的节点数和节点号;定义要通讯的数据类型、对端节点号;添加通讯数据完毕标志。然后,根据需要在程序中定时查询本地存放器,即可得到其他节点的数据;定时更新存放器数据表,将新数据自动发送给其他节点。2.
5、雷赛CAN总线令牌网的通讯指令1初始化CAN通讯数据表参数SMCCanRegTableInitshortSMCCanRegTableInit(shortEnable,shortSendMode,shortCycleTime,shortCanIdNum,short*pCanIdList);参数:Enable是否启用存放器表通讯:0-禁用,1-启用SendMode发送方式:0-收到令牌后发送从站,1-周期性发送主站CycleTime周期性发送时间,单位:毫秒CanIdNum对端节点号个数pCanIdList对端节点号列表2添加位类数据到存放器表SMCCanRegTableAddBitshortSM
6、CCanRegTableAddBit(shortCanId,shortRegAddr,shortRegNum,DshortRegValue);参数:CanId对端节点号RegAddr对端存放器地址RegNum对端存放器个数,范围1,32RegValue默认值3添加字类数据到存放器表SMCCanRegTableAddRegshortSMCCanRegTableAddReg(shortCanId,shortRegAddr,shortRegValue);参数:CanId对端节点号RegAddr对端存放器地址RegValue默认值4添加双字类数据到存放器表SMCCanRegTableAddLongsh
7、ortSMCCanRegTableAddLong(shortCanId,shortRegAddr,longRegValue);参数:CanId对端节点号RegAddr对端存放器地址RegValue默认值5添加浮点类数据到存放器表SMCCanRegTableAddFloatshortSMCCanRegTableAddFloat(shortCanId,shortRegAddr,floatRegValue);参数:CanId对端节点号RegAddr对端存放器地址RegValue默认值6添加完毕标志到存放器表SMCCanRegTableAddEndshortSMCCanRegTableAddEnd(s
8、hortCanId);参数:CanId对端节点号7更新存放器表中的位类数据SMCCanRegTableSetBitshortSMCCanRegTableSetBit(shortCanId,shortRegAddr,shortRegNum,longRegValue);参数:CanId对端节点号RegAddr对端存放器地址RegNum对端存放器个数,范围1,32RegValue设置值,每一个Bit位代表一个位存放器的值8更新存放器表中的字类数据SMCCanRegTableSetRegshortSMCCanRegTableSetReg(shortCanId,shortRegAddr,shortReg
9、Value);参数:CanId对端节点号RegAddr对端存放器地址RegValue设置值9更新存放器表中的双字类数据SMCCanRegTableSetLongshortSMCCanRegTableSetLong(shortCanId,shortRegAddr,longRegValue);参数:CanId对端节点号RegAddr对端存放器地址RegValue设置值10更新存放器表中的浮点类数据SMCCanRegTableSetFloatshortSMCCanRegTableSetFloat(shortCanId,shortRegAddr,floatRegValue);参数:CanId对端节点号
10、RegAddr对端存放器地址RegValue设置值三CAN总线级联三台SMC304运动控制器的例程1.例程的硬件设置如图3.1所示,3台SMC304运动控制器通过CAN总线级联。且节点号为ID1的运动控制器的CAN1口连接了6个CANopen总线电机和模块。详见本文上篇:SMC304控制器及CANopen总线产品的应用3台SMC304运动控制器的CAN总线拨码开关设置如下:ID1的拨码开关为:Off,Off,On,Off,Off,On。即:CAN1终端电阻使用、CAN0和CAN1独立使用、CAN0终端电阻使用。ID2的拨码开关为:Off,Off,Off,On,On,Off。即:CAN1终端电阻
11、禁用、CAN0和CAN1短接为一个接口、CAN0终端电阻禁用。ID3的拨码开关为:Off,Off,Off,Off,Off,On。即:CAN1终端电阻禁用、CAN0和CAN1独立使用、CAN0终端电阻使用。2.例程的通讯数据将ID2运动控制器作为主站,ID1、ID3号控制器作为从站。D2每80毫秒向ID1发送一个字类数据;向ID3发送1个一个字类数据,一个浮点类数据。ID1拿到令牌后,向ID2和ID3各发送一个字类数据。ID3拿到令牌后,向ID1发送一个字类数据;向ID2发送1个一个字类数据,一个位类数据4位、一个浮点类数据。3.例程的功能本实验软件功能有:ID1、ID2、ID3号控制器分别向I
12、D2、ID3、ID1号控制器发送一个从011循环变化的整数,使其输出口OUT1OUT11的指示灯以跑马灯方式从左到右、每0.2秒闪烁一次;ID1、ID2、ID3号控制器分别向ID3、ID1、ID2号控制器发送一个从110循环变化的整数,使其输出口OUT10OUT0的指示灯以跑马灯方式从右到左、每0.2秒闪烁一次。以此检测CAN总线令牌网的传送字类数据的通讯速度和可靠性。2ID2号控制器每0.2秒将1个整数和一个浮点数合并为1个浮点数,并发送给ID3号控制器,控制其电机做点位运动。以此检测CAN总线令牌网的传送浮点类数据的可靠性。3ID3号控制器每0.2秒向ID2号控制器发送一个在015之间由小
13、到大变化的、长度为4位的位类数据,一个在1111.56788888.5678之间由小到大变化的浮点类数据。ID1、ID2号控制器在接收字类数据、位类数据、浮点类数据的同时,检查其正确性。4ID1号控制器通过CAN1口控制2个CANopen型步进电机、1个CANopen型混合伺服电机、2个CANopen型IO扩展模块、1个CANopen型AD/DA模块。4.例程的程序清单程序清单1:ID2的程序auto:本机为ID2,为master。undim*dimCerr1,Cerr2,Ccheckdimstate1,state2dimstate3,state4,statedimdata0,data1,da
14、ta2,data3dimdata0old,data1olddimd0,d1,d2,d3dimt1,t2,tdimf1,f8dimflag1,flag2constCanID1=1ID1的节点号为1constCanID2=3ID2的节点号为3constCanID3=5ID3的节点号为5setcan(1000,CanID2)ID2的波特率为1000kcallRegTableInit()运行子程序RegTableInitflag1=0flag2=0state1=20000state2=30011state3=0state4=-91111.567data0=1f1=1234.5678f8=8888.56
15、78int_enable(1)中断使能:开timer_start(0,20)翻开定时器0whiletrueDelay(200)延时200毫秒ifstate1=20011thenstate1=20000基数设为20000,只是为了验证传送大数据的准确性elsestate1=state1+1state1在2000020011之间由小到大变化,200毫秒变一次endififstate2=30000thenstate2=30011elsestate2=state2-1state2在3001130000之间由大到小变化,200毫秒变一次endififstate4=8888.0thenstate4=-77
16、77.7777state3=1elsestate3=state3+1state3在116之间由大到小变化,200毫秒变一次state4=state4+1111.12345state4在-7777.7778889.074之间由小到大变化endififstate4=0then将state3和state4合并为一个浮点数state=state4+state3*10000elsestate=state4-state3*10000endifSMCCANRegTableSetReg(CanID1,20,state2)更新发送的数据SMCCANRegTableSetReg(CanID3,20,state1)
17、SMCCanRegTableSetFloat(CanID3,26,state)wendendontimer0:本机为ID2,50毫秒查寻一次ID1、ID3状态。timer_start(0,50)翻开定时器0,定时时间为50毫秒d1=modbus_Reg(10)读本地的存放器,查看控制器ID1的指令d2=d1-20000d2在011之间由小到大变化ifd2%2=0then当d2=0、2、4、6、8、10时,SMCWriteOutBit(d2+1,0)OUT1、OUT3、OUT5、OUT7、OUT9、OUT11的LED亮else当d2=1、3、5、7、9、11时,SMCWriteOutBit(d2
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 干货
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内