時間:2019-04-23 11:04:08來源:深圳市雷賽智能控制股份有限公司
一. CAN總線實時令牌網(wǎng)
1. CAN 總線的特點
CAN總線(Controller Area Net)是一種有效支持分布式控制的串行通信網(wǎng)絡(luò)。它是由德國Bosch公司為汽車的監(jiān)測、控制系統(tǒng)而設(shè)計,由于其具有卓越的特性及極高的可靠性,后來廣泛應(yīng)用于工業(yè)過程監(jiān)控設(shè)備的互連。
CAN總線只定義了ISO/OSI模型中的第一層(物理層)和第二層(數(shù)據(jù)鏈路層),其物理拓?fù)淙鐖D1所示。CAN總線主要特點有:
(1) 采用差分傳輸,抗干擾性強;
(2) 采用短幀結(jié)構(gòu)和CRC校驗等檢錯措施,出錯概率低;
(3) 采用基于優(yōu)先權(quán)的非破壞性總線仲裁技術(shù),可工作于多主、一對一、一對多及全局廣播方式傳送接收數(shù)據(jù);
(4) 通信距離隨波特率而變,典型值為10 km(5 kb/s)、40 m(1 Mb/s)。
2. 令牌總線簡介
令牌總線網(wǎng)絡(luò)的邏輯拓?fù)淙鐖D2所示。所有連接在令牌總線上的站點在邏輯上構(gòu)成一個首尾相連的環(huán),每個站點都知道自己的前導(dǎo)站(PS)和后繼站(NS)。
令牌實際上是一個采用特殊編碼的控制幀。網(wǎng)絡(luò)上只有一個令牌沿邏輯環(huán)傳遞,得到令牌的站才能發(fā)送數(shù)據(jù),然后把令牌向下傳。在正常運行時,令牌按照站點地址的序列號從一個站點傳送到另外一個站點。這樣,這個令牌實際上是按照邏輯環(huán)而不是物理環(huán)進(jìn)行傳遞。在數(shù)字序列的最后一個站點將令牌返回到第一個站點。
令牌通訊機制的優(yōu)點是任何時刻網(wǎng)絡(luò)中只有一對節(jié)點在進(jìn)行通訊,完全杜絕多節(jié)點通訊沖突的情況。
二. SMC304運動控制器CAN總線令牌網(wǎng)及指令
1. 雷賽CAN總線令牌網(wǎng)的通訊機制
SMC304運動控制器可以通過CAN總線和另外的SMC304運動控制器或雷賽其他型號的運動控制器連接,形成一個多站點的CAN總線運動控制系統(tǒng),采用令牌通訊機制實現(xiàn)各站點之間的數(shù)據(jù)交換。與一般令牌網(wǎng)不同,雷賽CAN總線令牌網(wǎng)中有一個主站,負(fù)責(zé)令牌傳遞的管理,防止令牌丟失,以提高通訊的可靠性。
在雷賽CAN總線實時令牌網(wǎng)上可以發(fā)送4類數(shù)據(jù):位、字、雙字、浮點類數(shù)據(jù)。通訊流程如下:
第一步,主站按周期將本站的寄存器數(shù)據(jù)表中的數(shù)據(jù)發(fā)送給其它各站點;之后往一個從站發(fā)送令牌消息;第二步,從站接收到令牌后,將本站寄存器數(shù)據(jù)表中的數(shù)據(jù)發(fā)送給其它各站點;之后往主站發(fā)送釋放令牌的消息;第三步,主站接收到一個從站令牌釋放消息后,往下一個從站發(fā)送令牌消息;然后回到第二步,直到所有站點數(shù)據(jù)都已經(jīng)發(fā)送完成;第四步,主站周期時間到達(dá)后重復(fù)以上流程。
以上通訊過程都是在BASIC程序后臺進(jìn)行,不需要用戶編程管理。
用戶需要在程序中首先初始化用于數(shù)據(jù)通訊的寄存器數(shù)據(jù)表,設(shè)置通訊周期、參與通訊的節(jié)點數(shù)和節(jié)點號;定義要通訊的數(shù)據(jù)類型、對端節(jié)點號;添加通訊數(shù)據(jù)結(jié)束標(biāo)志。
然后,根據(jù)需要在程序中定時查詢本地寄存器,即可得到其他節(jié)點的數(shù)據(jù);定時更新寄存器數(shù)據(jù)表,將新數(shù)據(jù)自動發(fā)送給其他節(jié)點。
2. 雷賽CAN總線令牌網(wǎng)的通訊指令
1)初始化CAN通訊數(shù)據(jù)表參數(shù)SMCCanRegTableInit short SMCCanRegTableInit(short Enable[,short SendMode[,short CycleTime[,short CanIdNum,short* pCanIdList]]);
參數(shù):
Enable 是否啟用寄存器表通訊:0-禁用,1-啟用 SendMode 發(fā)送方式:0-收到令牌后發(fā)送(從站),1-周期性發(fā)送(主站)
CycleTime 周期性發(fā)送時間,單位:毫秒 CanIdNum 對端節(jié)點號個數(shù) pCanIdList 對端節(jié)點號列表
2)添加位類數(shù)據(jù)到寄存器表SMCCanRegTableAddBit short SMCCanRegTableAddBit(short CanId,short RegAddr,short RegNum,Dshort RegValue);
參數(shù):
CanId 對端節(jié)點號
RegAddr 對端寄存器地址
RegNum 對端寄存器個數(shù),范圍[1,32]
RegValue 默認(rèn)值
3)添加字類數(shù)據(jù)到寄存器表SMCCanRegTableAddReg short SMCCanRegTableAddReg(short CanId,short RegAddr,short RegValue);
參數(shù):
CanId 對端節(jié)點號
RegAddr 對端寄存器地址
RegValue 默認(rèn)值
4)添加雙字類數(shù)據(jù)到寄存器表SMCCanRegTableAddLong
short SMCCanRegTableAddLong(short CanId,short RegAddr,long RegValue);
參數(shù):
CanId 對端節(jié)點號
RegAddr 對端寄存器地址
RegValue 默認(rèn)值
5)添加浮點類數(shù)據(jù)到寄存器表SMCCanRegTableAddFloat
short SMCCanRegTableAddFloat(short CanId,short RegAddr,float RegValue);
參數(shù):
CanId 對端節(jié)點號
RegAddr 對端寄存器地址
RegValue 默認(rèn)值
6)添加結(jié)束標(biāo)志到寄存器表SMCCanRegTableAddEnd short SMCCanRegTableAddEnd(short CanId);
參數(shù):
CanId 對端節(jié)點號
7)更新寄存器表中的位類數(shù)據(jù)SMCCanRegTableSetBit short SMCCanRegTableSetBit(short CanId,short RegAddr,short RegNum,long RegValue);
參數(shù):
CanId 對端節(jié)點號
RegAddr 對端寄存器地址
RegNum 對端寄存器個數(shù),范圍[1,32]
RegValue 設(shè)置值,每一個Bit位代表一個位寄存器的值
8)更新寄存器表中的字類數(shù)據(jù)SMCCanRegTableSetReg
short SMCCanRegTableSetReg(short CanId,short RegAddr,short RegValue);
參數(shù):
CanId 對端節(jié)點號
RegAddr 對端寄存器地址
RegValue 設(shè)置值
9)更新寄存器表中的雙字類數(shù)據(jù)SMCCanRegTableSetLong short SMCCanRegTableSetLong(short CanId,short RegAddr,long RegValue);
參數(shù):
CanId 對端節(jié)點號
RegAddr 對端寄存器地址
RegValue 設(shè)置值
10)更新寄存器表中的浮點類數(shù)據(jù)SMCCanRegTableSetFloat short SMCCanRegTableSetFloat(short CanId,short RegAddr,float RegValue);
參數(shù):
CanId 對端節(jié)點號
RegAddr 對端寄存器地址
RegValue 設(shè)置值
三. CAN總線級聯(lián)三臺SMC304運動控制器的例程
1. 例程的硬件設(shè)置
如圖3.1所示,3臺SMC304運動控制器通過CAN總線級聯(lián)。且節(jié)點號為ID1的運動控制器的CAN1口連接了6個CANopen總線電機和模塊。(詳見本文上篇:SMC304控制器及CANopen總線產(chǎn)品的應(yīng)用)
3臺SMC304運動控制器的CAN總線撥碼開關(guān)設(shè)置如下:
ID1的撥碼開關(guān)為:Off,Off,On,Off,Off,On。即:CAN1終端電阻使用、CAN0和CAN1獨立使用、CAN0終端電阻使用。
ID2的撥碼開關(guān)為:Off,Off,Off,On,On,Off。即:CAN1終端電阻禁用、CAN0和CAN1短接為一個接口、CAN0終端電阻禁用。
ID3的撥碼開關(guān)為:Off,Off,Off,Off,Off,On。即:CAN1終端電阻禁用、CAN0和CAN1獨立使用、CAN0終端電阻使用。
2. 例程的通訊數(shù)據(jù)
將ID2運動控制器作為主站,ID1、ID3號控制器作為從站。
D2每80毫秒向ID1發(fā)送一個字類數(shù)據(jù);向ID3發(fā)送1個一個字類數(shù)據(jù),一個浮點類數(shù)據(jù)。
ID1拿到令牌后,向ID2和ID3各發(fā)送一個字類數(shù)據(jù)。
ID3拿到令牌后,向ID1發(fā)送一個字類數(shù)據(jù);向ID2發(fā)送1個一個字類數(shù)據(jù),一個位類數(shù)據(jù)(4位)、一個浮點類數(shù)據(jù)。
3. 例程的功能
本實驗軟件功能有:
ID1、ID2、ID3號控制器分別向ID2、ID3、ID1號控制器發(fā)送一個從0~11循環(huán)變化的整數(shù),使其輸出口OUT1~OUT11的指示燈以跑馬燈方式從左到右、每0.2秒閃爍一次;
ID1、ID2、ID3號控制器分別向ID3、ID1、ID2號控制器發(fā)送一個從11~0循環(huán)變化的整數(shù),使其輸出口OUT10~OUT0的指示燈以跑馬燈方式從右到左、每0.2秒閃爍一次。以此檢測CAN總線令牌網(wǎng)的傳送字類數(shù)據(jù)的通訊速度和可靠性。
2)ID2號控制器每0.2秒將1個整數(shù)和一個浮點數(shù)合并為1個浮點數(shù),并發(fā)送給ID3號控制器,控制其電機做點位運動。以此檢測CAN總線令牌網(wǎng)的傳送浮點類數(shù)據(jù)的可靠性。
3)ID3號控制器每0.2秒向ID2號控制器發(fā)送一個在0~15之間由小到大變化的、長度為4位的位類數(shù)據(jù),一個在1111.5678~8888.5678之間由小到大變化的浮點類數(shù)據(jù)。ID1、ID2號控制器在接收字類數(shù)據(jù)、位類數(shù)據(jù)、浮點類數(shù)據(jù)的同時,檢查其正確性。
4)ID1號控制器通過CAN1口控制2個CANopen型步進(jìn)電機、1個CANopen型混合伺服電機、2個CANopen型IO擴展模塊、1個CANopen型AD/DA模塊。
4. 例程的程序清單
程序清單1:ID2的程序
auto: ' 本機為ID2,為master。
undim *
dim Cerr1,Cerr2,Ccheck
dim state1,state2
dim state3,state4,state
dim data0,data1,data2,data3
dim data0old,data1old
dim d0,d1,d2,d3
dim t1,t2,t
dim f1,f8
dim flag1,flag2
constCanID1=1 ' ID1的節(jié)點號為1
const CanID2=3 ' ID2的節(jié)點號為3
const CanID3=5 ' ID3的節(jié)點號為5
setcan(1000,CanID2) ' ID2的波特率為1000k
call RegTableInit() ' 運行子程序RegTableInit
flag1=0
flag2=0
state1=20000
state2=30011
state3=0
state4=-91111.567
data0=1
f1=1234.5678
f8=8888.5678
int_enable(1) '中斷使能:開
timer_start(0,20) '打開定時器0
while true
Delay(200) '延時200毫秒
if state1>=20011 then
state1=20000 '基數(shù)設(shè)為20000,只是為了驗證傳送大數(shù)據(jù)的準(zhǔn)確性
else
state1=state1+1 'state1在20000~20011之間由小到大變化,200毫秒變一次
endif
if state2<=30000 then
state2=30011
else
state2=state2-1 'state2在30011~30000之間由大到小變化,200毫秒變一次
endif
if state4>=8888.0 then
state4=-7777.7777
state3=1
else
state3=state3+1 'state3在1~16之間由大到小變化,200毫秒變一次
state4=state4+1111.12345 'state4在-7777.777~8889.074之間由小到大變化
endif
if state4>=0 then '將state3和state4合并為一個浮點數(shù)
state=state4+state3*10000
else
state=state4-state3*10000
endif
SMCCANRegTableSetReg(CanID1,20,state2) ' 更新發(fā)送的數(shù)據(jù)
SMCCANRegTableSetReg(CanID3,20,state1) SMCCanRegTableSetFloat(CanID3,26,state)
wend
end
ontimer0: ' 本機為ID2,50毫秒查尋一次ID1、ID3狀態(tài)。
timer_start(0, 50) ' 打開定時器0,定時時間為50毫秒
d1=modbus_Reg(10) ' 讀本地的寄存器,查看控制器ID1的指令
d2=d1-20000 ' d2在0~11之間由小到大變化
if d2%2=0 then ' 當(dāng)d2=0、2、4、6、8、10時,
SMCWriteOutBit(d2+1,0) ' OUT1、OUT3、OUT5、OUT7、OUT9、OUT11的LED亮
else ' 當(dāng)d2=1、3、5、7、9、11時,
SMCWriteOutBit(d2,1) ' OUT1、OUT3、OUT5、OUT7、OUT9、OUT11的LED滅
endif
d1=modbus_Reg(30) ' 讀本地的寄存器,查看控制器ID3的指令
d3=d1-30000 ' d3在11~0之間由大到小變化
if d3%2=0 then ' 當(dāng)d3=10、8、6、4、2、0時,
SMCWriteOutBit(d3,1) ' OUT10、OUT8、OUT6、OUT4、OUT2、OUT0的LED滅
else ' 當(dāng)d3=11、9、7、5、3、1時,
SMCWriteOutBit(d3-1,0) ' OUT10、OUT8、OUT6、OUT4、OUT2、OUT0的LED亮
endif
data0=MODBUS_BIT(30,33)
if flag1=0 then
flag1=1 ' 第一次讀ID3的位類數(shù)據(jù)
data0old=data0
else
if data0<>data0old then ' 根據(jù)有序數(shù)據(jù)檢查數(shù)據(jù)傳送的準(zhǔn)確性
if data0=data0old+1 or (data0=0 and data0old=15) then
else
Cerr1=Cerr1+1 ' ID3的傳送的位類數(shù)據(jù)有錯,次數(shù)加1
print "error data = ",data0,data0old
endif
data0old=data0
endif
endif
data1=MODBUS_IEEE(36)
if flag2=0 then
flag2=1 ' 第一次讀ID3的浮點類數(shù)據(jù)
data1old=data1
else
if data1<>data1old then ' 根據(jù)有序數(shù)據(jù)檢查數(shù)據(jù)傳送的準(zhǔn)確性
if data1-(data1old+1110.997)<0.001 or (data1-f1<0.001 and data1-f8<0.001) then
else
Cerr2=Cerr2+1 ' ID3的傳送的浮點類數(shù)據(jù)有錯,次數(shù)加1
print "error data = ",data1,data1old
endif
data1old=data1
endif
endif
Ccheck=Ccheck+1
end
sub RegTableInit()
dim CanIdList(2) '定義從站節(jié)點號列表
CanIdList(0) = 1 '第一個從站節(jié)點號為1
CanIdList(1) = 5 '第二個從站節(jié)點號為5
SMCCANRegTableInit(1,1,80,2,CanIdList) '初始化寄存器表,周期為80毫秒,從站節(jié)點數(shù)為2
SMCCANRegTableAddReg(CanID1,20,0) '添加寄存器數(shù)據(jù)
SMCCANRegTableAddReg(CanID3,20,0) SMCCanRegTableAddFloat(CanID3,26,0)
SMCCANRegTableAddEnd(CanID1) '寄存器數(shù)據(jù)結(jié)束標(biāo)志
end sub
程序清單2:ID3的程序
auto: ' 本機為ID3,為slave。
undim *
dim Cerr1,Cerr2,Ccheck
dim state1,state2
dim state3,state4
dim data0,data1,data2,data3
dim d0,d1,d2,d3
dim t1,t2,t
dim f1,f8
dim flag1,flag2
dim MaxData,MinData
const CanID1=1
const CanID2=3
const CanID3=5
MaxData=-1000
MinData=9999
flag1=0
flag2=0
state1=20000
state2=30011
state3=0
state4=1111.5678
data0=1
f1=1234.567
f8=8888.567
setcan(1000,CanID3)
call RegTableInit()
int_enable(1) '中斷使能:開
timer_start(0,20) '打開定時器
SMCSetProfileUnit(0,900,6000,0.2,0.1,900) '設(shè)置0號軸速度曲線參數(shù)
SMCSetsprofile(0,0,0.5) '設(shè)置0號軸S段參數(shù)
while true
Delay(200)
if state1>=20011 then ' ……
state1=20000
else
state1=state1+1
endif ' 和ID2程序相同
if state2<=30000 then
state2=30011
else
state2=state2-1
endif ' ……
if state3>=15 then
state3=0
else
state3=state3+1 'state3在0~15之間由小到大變化,200毫秒變一次
endif
if state4>=8888.5678 then
state4=1111.5678
else
state4=state4+1111 'state4在1111.5678~8888.5678之間由小到大變化
endif
SMCCANRegTableSetReg(CanID1,30,state1) ' 更新發(fā)送的數(shù)據(jù)
SMCCANRegTableSetReg(CanID2,30,state2) SMCCanRegTableSetBit(CanID2,30,4,state3) SMCCanRegTableSetFloat(CanID2,36,state4)
data1=MODBUS_IEEE(26)
if data1>= 0 then ' 將data1拆分為2個數(shù)
data0=int(data1/10000) ' data0是1~16之間的一個整數(shù)
data2=data1-data0*10000 ' data2是-7777.777~8889.074之間的一個浮點數(shù)
else
data0=-1*int(data1/10000)-1
data2=data1+data0*10000
endif
if data0=4 or data0=12 then ' 根據(jù)data0、data2做點位運動
SMCPMoveUnit(0,data2,0)
endif
wend
end
ontimer0: ' 本機為ID3,50毫秒查尋一次ID1、ID2狀態(tài)。
timer_start(0,50)
d1=modbus_Reg(20) ' 讀本地的寄存器,查看控制器ID2的指令
d2=d1-20000
if d2%2=0 then ' 和ID2程序相同
SMCWriteOutBit(d2+1,0)
else
SMCWriteOutBit(d2,1)
endif
d1=modbus_Reg(10) ' 讀本地的寄存器,查看控制器ID1的指令
d3=d1-30000
if d3%2=0 then ' 和ID2程序相同
SMCWriteOutBit(d3,1)
else
SMCWriteOutBit(d3-1,0)
endif
end
sub RegTableInit()
SMCCanRegTableInit(1,0,0) '初始化寄存器表
SMCCanRegTableAddReg(CanID1,30,0) '添加寄存器數(shù)據(jù)
SMCCanRegTableAddReg(CanID2,30,0)
SMCCanRegTableAddBit(CanID2,30,4,0) '長度為4位的位類數(shù)據(jù)
SMCCanRegTableAddFloat(CanID2,36,0)
SMCCanRegTableAddEnd(CanID2) '寄存器數(shù)據(jù)結(jié)束標(biāo)志
end sub
程序清單3:ID1的程序
auto: ' 本機為ID1,為slave。
undim *
dim a,b,flag1,flag2,Cerr1,Cerr2,Ccheck
dim EMoutV0,EMoutV1,EMinV0
dim state1,state2
dim d1,d2,d3,d2old,d3old
dim t1,t2,t,Tmax
Tmax=0
flag1=0
flag2=0
const EM1out0=12
const EM1out8=20
const EM1out5=18
const EM1out13=25
const EM1in0=16
const EM1in8=24
const EM2out1=29
const EM2out9=37
const EM2out6=34
const EM2out14=42
const EM2in1=33
const EM2in9=41
const CanID1=1
const CanID2=3
const CanID3=5
setcan(1000,CanID1)
call RegTableInit()
a=off
b=off
EMoutV0=0
EMoutV1=0
EMinV0=0
state1=20000
state2=30011
int_enable(1) '中斷使能:開
timer_start(0,50) '打開定時器0
timer_start(1,60) '打開定時器1,控制IO模塊
run 1,canmotor '控制CAN總線電機
count=0
while true
Delay(200)
if state1>20011 then
state1=20000
else
state1=state1+1
endif
if state2<30000 then
state2=30011
else
state2=state2-1
endif
SMCCANRegTableSetReg(CanID2,10,state1) ' 更新發(fā)送的數(shù)據(jù)
SMCCANRegTableSetReg(CanID3,10,state2)
wend
end
canmotor: ' 控制CANopen電機的子任務(wù)
…… ' 程序略(詳見本文上篇:SMC304控制器及CANopen總線產(chǎn)品的應(yīng)用)
end
ontimer1: ' AD/DA模塊控制
…… '程序略
end
EM32IOControl: ' 控制IO模塊的子任務(wù)
…… '程序略
end
ontimer0: ' 本機為ID1,20+毫秒查尋一次ID2、ID3狀態(tài)。
t1=ticks
d1=modbus_Reg(30) ' 讀本地的寄存器,查看控制器ID3的指令
d2=d1-20000
if flag1=0 then
flag1=1 ' 第一次
d2old=d2
if d2%2=0 then
SMCWriteOutBit(d2+1,0)
else
SMCWriteOutBit(d2,1)
endif
else
if d2<>d2old then
if d2=d2old+1 or (d2=0 and d2old=11) then
if d2%2=0 then
SMCWriteOutBit(d2+1,0)
else
SMCWriteOutBit(d2,1)
endif
else
Cerr1=Cerr1+1 ' ID3的傳送的數(shù)據(jù)有錯,次數(shù)加1
print "error data = ",d2,d2old
endif
d2old=d2
endif
endif
d1=modbus_Reg(20) ' 讀本地的寄存器,查看控制器ID2的指令
d3=d1-30000
if flag2=0 then
flag2=1 ' 第一次
d3old=d3
if d3%2=0 then
SMCWriteOutBit(d3,1)
else
SMCWriteOutBit(d3-1,0)
endif
else
if d3<>d3old then
if d3=d3old-1 or (d3=11 and d3old=0) then
if d3%2=0 then
SMCWriteOutBit(d3,1)
else
SMCWriteOutBit(d3-1,0)
endif
else
Cerr2=Cerr2+1 ' ID2的傳送的數(shù)據(jù)有錯,次數(shù)加1
print "error data = ",d3,d3old
endif
d3old=d3
endif
endif
Ccheck=Ccheck+1
timer_start(0, 20)
t2=ticks
t=t2-t1 ' 測量ontimer0運行時間
if t>Tmax then
Tmax=t
print "max time = ",t ' 輸出最大運行時間
endif
end
sub RegTableInit()
SMCCanRegTableInit(1,0,0) '初始化寄存器表SMCCanRegTableAddReg(CanID2,10,0) '添加寄存器數(shù)
SMCCanRegTableAddReg(CanID3,10,0) SMCCanRegTableAddEnd(CanID2) '寄存器數(shù)據(jù)結(jié)束標(biāo)志
end sub
5. 例程的實驗結(jié)果
三臺SMC304運動控制器通過CAN總線令牌網(wǎng)級聯(lián),可以實現(xiàn)穩(wěn)定、可靠的數(shù)據(jù)交換。該程序測試幾十小時,未發(fā)現(xiàn)一次通訊錯誤。
傳送一個字類數(shù)據(jù)的平均通訊時間小于5毫秒。由于控制器ID1的工作任務(wù)繁重,其負(fù)責(zé)更新傳送數(shù)據(jù)的timer0的中斷任務(wù)平均完成時間在35毫秒左右,但最長時間近70毫秒,所以,主站ID2將數(shù)據(jù)通訊周期定為80毫秒。
需要注意,有一種情況是可能發(fā)生的:在查詢本地寄存器時,第i個數(shù)據(jù)是上一個周期接收到的,第i+1個數(shù)據(jù)是本次周期接收到的。
如果這2個數(shù)據(jù)是關(guān)聯(lián)數(shù)據(jù),如:第i個數(shù)據(jù)是軸號、第i+1個數(shù)據(jù)是運動距離;第j個周期和第j+1個周期傳送的數(shù)據(jù)不同。這時就會發(fā)生錯誤。因此,為避免這種情況發(fā)生,可以將這2個關(guān)聯(lián)數(shù)據(jù)合并為一個數(shù)據(jù)發(fā)送。
四.結(jié)論
SMC304運動控制器采用CAN總線令牌網(wǎng)級聯(lián),通訊速度快、穩(wěn)定可靠;可以充分發(fā)揮SMC304的軌跡控制的功能,擴大使用交流伺服電機的數(shù)量;控制器控制總線型電機的數(shù)量減少,降低了總線控制系統(tǒng)的編程難度。所以,該組網(wǎng)方式在小型生產(chǎn)線上應(yīng)用非常合適。
總之,使用SMC304運動控制器和CANopen總線步進(jìn)電機、混合伺服電機及擴展模塊,可以充分發(fā)揮雷賽公司的優(yōu)勢,大幅提升運動控制系統(tǒng)的性價比。
五.參考文獻(xiàn)
[1] 趙城,張凱. 基于CAN總線實時令牌網(wǎng)的設(shè)計. 微型機與應(yīng)用,2013年第9期
[2] 深圳市雷賽控制技術(shù)有限公司. 雷賽SMC304-BAS運動控制器用戶手冊. 2019
[3] 深圳市雷賽控制技術(shù)有限公司. 雷賽運動控制器SMC Basic Studio使用手冊. 2019
聲明:本文內(nèi)容由企業(yè)提供,如涉及版權(quán)、機密問題,請及時聯(lián)系我們刪除(QQ: 2737591964),不便之處,敬請諒解!
標(biāo)簽:
中國傳動網(wǎng)版權(quán)與免責(zé)聲明:凡本網(wǎng)注明[來源:中國傳動網(wǎng)]的所有文字、圖片、音視和視頻文件,版權(quán)均為中國傳動網(wǎng)(www.wangxinlc.cn)獨家所有。如需轉(zhuǎn)載請與0755-82949061聯(lián)系。任何媒體、網(wǎng)站或個人轉(zhuǎn)載使用時須注明來源“中國傳動網(wǎng)”,違反者本網(wǎng)將追究其法律責(zé)任。
本網(wǎng)轉(zhuǎn)載并注明其他來源的稿件,均來自互聯(lián)網(wǎng)或業(yè)內(nèi)投稿人士,版權(quán)屬于原版權(quán)人。轉(zhuǎn)載請保留稿件來源及作者,禁止擅自篡改,違者自負(fù)版權(quán)法律責(zé)任。
相關(guān)資訊
產(chǎn)品新聞
更多>2025-04-30
性能躍升20%!維宏NK300CX Plus數(shù)控系統(tǒng)...
2025-04-11
rpi-image-gen:樹莓派軟件鏡像構(gòu)建的終...
2025-04-08
【產(chǎn)品解讀】全面提升精密制造檢測節(jié)拍...
2025-03-31
激光閃耀 智慧引領(lǐng) | WISE MASER 黑武士...
2025-03-20