技術(shù)頻道

娓娓工業(yè)
您現(xiàn)在的位置: 中國(guó)傳動(dòng)網(wǎng) > 技術(shù)頻道 > 技術(shù)百科 > 快速入門(mén) | 篇二十:正運(yùn)動(dòng)技術(shù)運(yùn)動(dòng)控制器MODBUS通訊

快速入門(mén) | 篇二十:正運(yùn)動(dòng)技術(shù)運(yùn)動(dòng)控制器MODBUS通訊

時(shí)間:2020-12-25 10:37:27來(lái)源:正運(yùn)動(dòng)技術(shù)

導(dǎo)語(yǔ):?

  視頻教材:《視頻教材:正運(yùn)動(dòng)技術(shù)運(yùn)動(dòng)控制器MODBUS通訊


               材料準(zhǔn)備    

  1.電腦1臺(tái)

  2.控制器2個(gè)

  3.+24V直流電源1個(gè)

  4.驅(qū)動(dòng)器+電機(jī)若干

  5.交換機(jī)1個(gè)

  6.控制器接線端子若干

  7.網(wǎng)線若干

  8.連接線若干

  另:IO設(shè)備、擴(kuò)展模板等根據(jù)需求選用。

  

  運(yùn)動(dòng)控制

  

  控制器接線配置

               MODBUS                  通訊協(xié)議簡(jiǎn)介    


  MODBUS協(xié)議是一個(gè)通用的標(biāo)準(zhǔn)協(xié)議,幾乎所有的控制設(shè)備和智能化儀表都支持MODBUS協(xié)議,這樣不同廠家的設(shè)備之間就可以互相通訊,連接到同一個(gè)控制網(wǎng)絡(luò)。

  MODBUS的串行傳輸模式分為:RTU模式和ASCII模式,RTU模式通訊傳輸?shù)臄?shù)據(jù)為二進(jìn)制數(shù)據(jù),ASCII模式通訊傳輸?shù)臄?shù)據(jù)為ASCII碼,RTU模式的通訊速率比ASCII模式快。

  MODBUS發(fā)展至今包含好幾種協(xié)議模式:控制器的串口和網(wǎng)口的默認(rèn)協(xié)議均為MODBUS協(xié)議,其中串口為MODBUS_RTU協(xié)議,網(wǎng)口為MODBUS_TCP協(xié)議。

  控制器支持MODBUS_RTU模式的串口:RS232、RS485、RS422,當(dāng)從串口接收到數(shù)據(jù)時(shí),會(huì)直接根據(jù)報(bào)文中的數(shù)據(jù)進(jìn)行控制。

  控制器支持的網(wǎng)口協(xié)議MODBUS_TCP接口:EtherNET網(wǎng)口。

  網(wǎng)口主要用于與PC與人機(jī)界面通訊。

  控制器的串口和網(wǎng)口在 MODBUS協(xié)議下讀寫(xiě)數(shù)據(jù),使用MODBUS相關(guān)指令讀寫(xiě),數(shù)據(jù)保存在MODBUS寄存器中傳遞。也可以通過(guò)指令將串口或網(wǎng)口配置為無(wú)協(xié)議模式,采用自定義通訊指令讀寫(xiě)數(shù)據(jù)。

  ZMC316 系列脈沖型控制器各接口配置如下:

  通訊接口包含RS232,RS485,RS422,以太網(wǎng),U盤(pán),CAN接口。

  

  運(yùn)動(dòng)控制

  

  自帶16個(gè)脈沖軸,面板上包含15個(gè)脈沖接口和3個(gè)編碼器接口,第16個(gè)脈沖軸由OUT輸出口控制。

  支持使用擴(kuò)展模塊擴(kuò)展至24個(gè)脈沖軸,支持多達(dá)24軸直線插補(bǔ)、任意圓弧插補(bǔ)、空間圓弧、螺旋插補(bǔ)、電子凸輪、電子齒輪、同步跟隨、虛擬軸設(shè)置等;采用優(yōu)化的網(wǎng)絡(luò)通訊協(xié)議可以實(shí)現(xiàn)實(shí)時(shí)的運(yùn)動(dòng)控制。

  應(yīng)用程序可以使用ZDevelop軟件或VC、VB、VS、C++、LabVIEW、C#等軟件來(lái)開(kāi)發(fā)。

               01                   三類串口說(shuō)明    

  RS232串口常用于連接PC或人機(jī)界面

  RS485串口常用于與控制裝置和智能儀表的通訊控制

  RS422串口只有個(gè)別型號(hào)控制器才有此接口

               RS232    

  控制器的RS232接口可以做MODBUS主站或從站,支持1個(gè)主站發(fā)送數(shù)據(jù),1個(gè)從站接收數(shù)據(jù)。做主站時(shí),可連接驅(qū)動(dòng)器、變頻器、溫控儀等,進(jìn)行數(shù)據(jù)讀出與寫(xiě)入的控制。做從站時(shí),可連接人機(jī)界面,用來(lái)監(jiān)控運(yùn)行狀態(tài),常用于連接PC或人機(jī)界面。

  控制器的RS232接口采用DB9公頭,使用相應(yīng)的連接線連接兩個(gè)設(shè)備。

  

  運(yùn)動(dòng)控制

  運(yùn)動(dòng)控制

  

  RS232的標(biāo)準(zhǔn)接線只需要三根線即可,2根數(shù)據(jù)信號(hào)TXD和RXD,1根地線EGND,數(shù)據(jù)信號(hào)TXD與RXD交叉連接,再將EGND連到一起。

  接線參考如下:

  

  運(yùn)動(dòng)控制

  

          RS485    

  主要提供主/從站的多臺(tái)通訊設(shè)備聯(lián)機(jī),理論上支持128個(gè)節(jié)點(diǎn)。做主站時(shí),可連接驅(qū)動(dòng)器、變頻器、溫控儀等,進(jìn)行數(shù)據(jù)讀出與寫(xiě)入的控制;做從站時(shí),能與PLC通訊,可連接人機(jī)界面,用來(lái)監(jiān)控運(yùn)行狀態(tài)。

  

  運(yùn)動(dòng)控制

  

  RS485接口采用差分傳輸方式,通過(guò)判斷A與B之間的電壓差來(lái)確定是高電平或低電平。

  

  運(yùn)動(dòng)控制

  

  控制器的RS485接口采用了簡(jiǎn)易接線方式,如下圖所示,控制器的485A、485B、EGND地線, 分別接第一個(gè)從站的A、B、地線, 然后再接第二個(gè)從站的A、B、地線(A 接 A, B 接 B,信號(hào)共地),并且控制器和最后一個(gè)從站的485A 和485B 要并聯(lián)120 歐電阻防止信號(hào)反射,線纜需要使用屏蔽雙絞線,避免信號(hào)干擾,每個(gè)節(jié)點(diǎn)支線的距離要小于3m。

  

  運(yùn)動(dòng)控制

  

          RS422    

  控制器的RS422接口可以做MODBUS 主站或從站,支持1發(fā)10收。

  控制器的RS422接口采用了簡(jiǎn)易接線方式,為四線制,接線時(shí)需要接5根線,RX+/RX-(接收信號(hào))、TX+/TX- (發(fā)送信號(hào))、一根信號(hào)地線。

  控制器的RS422接口相比RS485和RS232,布線成本高,接線容易弄錯(cuò),包含422接口的控制器型號(hào)很少。

  

  運(yùn)動(dòng)控制

  運(yùn)動(dòng)控制

  

               02                  串口參數(shù)    

  連接串口使用:串口通??蛇xRS232串口或RS485串口,不管哪種串口,除了端口號(hào)和接線方法有所不同,默認(rèn)參數(shù)與操作指令都是相同的。

  串口默認(rèn)參數(shù)為:波特率38400,數(shù)據(jù)位8,停止位1,校驗(yàn)位無(wú),采用SETCOM指令配置串口參數(shù)??刂破髦匦律想姾?,SETCOM參數(shù)會(huì)還原成默認(rèn)值,所以請(qǐng)?jiān)诔绦蜷_(kāi)頭寫(xiě)SETCOM設(shè)置。

  控制器所有串口的MODBUS協(xié)議站號(hào)ADDRESS為1-127,缺省=1。

  在一個(gè)MODBUS網(wǎng)絡(luò)上的所有設(shè)備都必須選擇相同的傳輸模式和串口參數(shù),否則無(wú)法通訊。

  控制器默認(rèn)PORT0(COM0)為RS232串口,PORT1(COM1)為RS485串口,PORT2(COM2)為RS422串口,支持在線命令窗口發(fā)送?*setcom打印查看,或在“控制器狀態(tài)”窗口查看。

  SETCOM指令除了可以配置串口的通訊基本參數(shù)外,還可以選擇參數(shù)配置通訊協(xié)議,設(shè)置控制器為主端設(shè)備還是從端設(shè)備,默認(rèn)為從端,還可以開(kāi)啟自定義通訊模式(即mode=0無(wú)協(xié)議模式)。

  語(yǔ)法:SETCOM (baudrate,databits,stopbits,parity,port[,mode] [,variable] [,timeout])

  

  運(yùn)動(dòng)控制

  

  mode參數(shù)選擇協(xié)議:

  1.與觸摸屏通訊時(shí),mode參數(shù)選擇協(xié)議:4

  Port0:setcom(9600,8,1,0,0,4,2,1000)

  Port1:setcom(9600,8,1,0,1,4,2,1000)

  2.控制器通過(guò)RS485做主站時(shí),mode參數(shù)選擇協(xié)議:14

  Port1:setcom(38400,8,1,0,1,14,2,1000)

               03                  網(wǎng)口參數(shù)    

  控制器網(wǎng)口支持MODBUS-TCP協(xié)議,出廠默認(rèn)IP地址為192.168.0.11,可使用IP_ADDRESS指令修改IP地址或在修改IP地址窗口修改,修改一次永久生效。

  控制器至少包含2個(gè)網(wǎng)口通道,可在在線命令發(fā)送?*port打印查看,如下圖,網(wǎng)口的端口號(hào)為502。

  

  運(yùn)動(dòng)控制

  

  ZMC432通道

  

  運(yùn)動(dòng)控制

  

  ZMC316通道

  不同的控制器可通過(guò)網(wǎng)口互聯(lián),EtherNET網(wǎng)線接口只有一個(gè),可使用交換機(jī),網(wǎng)口互聯(lián)的前提是兩個(gè)控制器均有CONNECT通道,用MODBUSM_DES2指令開(kāi)啟連接。

               04                  串口/網(wǎng)口讀寫(xiě)    

  MODBUS通訊通過(guò)功能碼告訴被尋址到的終端執(zhí)行何種功能,如運(yùn)行命令、讀取監(jiān)控狀態(tài)、修改參數(shù)、讀取參數(shù)等,MODBUS協(xié)議制定了相關(guān)的功能碼。

  

  運(yùn)動(dòng)控制

  

  控制器也可直接使用MODBUS通訊功能碼,為方便使用,將一些常用的功能碼直接封裝為Basic指令,如下表Basic指令對(duì)應(yīng)功能碼。

  

  運(yùn)動(dòng)控制

  

  串口和網(wǎng)口通訊的連接方法不同,讀寫(xiě)都是使用同一套指令,數(shù)據(jù)由MODBUS寄存器存儲(chǔ)。

  1.MODBUS寄存器

  MODBUS通訊的數(shù)據(jù)使用MODBUS寄存器存儲(chǔ),控制器的MODBUS寄存器符合MODBUS標(biāo)準(zhǔn)通訊協(xié)議,分為位寄存器和字寄存器兩類。

  位寄存器:MODBUS_BIT(布爾型)。

  字寄存器:包含MODBUS_REG(16位整型)、MODBUS_LONG(32位整型)、MODBUS_IEEE(32位浮點(diǎn)型)、MODBUS_STRING(8位字節(jié)型)。

  控制器中MODBUS字寄存器占用同一片系統(tǒng)變量空間,其中一個(gè)LONG占用兩個(gè)REG地址,一個(gè)IEEE也占用兩個(gè)REG地址,使用時(shí)要注意錯(cuò)開(kāi)字寄存器編號(hào)地址。

  所以要注意MODBUS_REG、MODBUS_LONG、MODBUS_IEEE地址在用戶應(yīng)用程序中不能重疊。

  

  運(yùn)動(dòng)控制

  

  控制器的MODBUS存儲(chǔ)空間安排如下:

  

  運(yùn)動(dòng)控制

  運(yùn)動(dòng)控制

  

  2.MODBUS讀寫(xiě)相關(guān)指令

  

  運(yùn)動(dòng)控制

  

  3.MODBUS讀/寫(xiě)語(yǔ)法格式相同,如下所示:

  MODBUSM_REGGET (startreg, num, local_reg)

          startreg:對(duì)端的寄存器起始編號(hào),從0開(kāi)始

          num:寄存器個(gè)數(shù)

          local_reg:從本地系統(tǒng)MODBUS寄存器中取值,起始編號(hào)

  MODBUSM_REGSET (startreg, num, local_reg)

          startreg:對(duì)端的寄存器起始編號(hào),從0開(kāi)始

          num:寄存器個(gè)數(shù)

          local_reg:從本地系統(tǒng)MODBUS寄存器中取值,起始編號(hào)

  使用示例:

  MODBUSM_REGGET(0,10,100)                  '把對(duì)端位寄存器0~9復(fù)制到通訊本地的寄存器100~109    

  MODBUSM_REGSET(0,10,100)     '把本地位寄存器100~109設(shè)置到通訊對(duì)端的寄存器0~9

  4.建立MODBUS通訊

  (1)串口

  MODBUSM_DES (address[,port],[timer],[resendset])

  ADDRESS1 = MODBUSM_DES([port])

          address:對(duì)端的modbus協(xié)議站號(hào)

          port:當(dāng)前modbus主通訊的port號(hào)

          timer:消息超時(shí)時(shí)間設(shè)置,缺省1000ms。

          resendset:超時(shí)消息重發(fā)設(shè)置,0-不重發(fā),1-SEND指令重發(fā),2-SEND與MODBUSM指令都重發(fā)。

  (2)網(wǎng)口

  MODBUSM_DES2 (id,port,"desipaddress",[timer],[resendset])

          id:對(duì)方控制器的MODBUS從端ID,缺省1

          port:支持兩種模式,?*PORT確認(rèn)通道號(hào)及模式

                  ETH時(shí),作為MODBUS_TCP主端通道

                  CONNECT時(shí),做為控制器互聯(lián)通道

          desipaddress:字符串, 對(duì)方控制器的IP地址

          timer:消息超時(shí)時(shí)間設(shè)置,缺省1000ms

          resendset:超時(shí)消息重發(fā)設(shè)置,0-不重發(fā),1-SEND指令超時(shí)重發(fā),2-SEND與MODBUSM指令都超時(shí)重發(fā)。

               05                  串口通訊例程    

  控制器RS485做主站與從站的通訊。

  工程項(xiàng)目下包含三個(gè)文件:

  ModbusRead.bas :建立通訊連接,主站讀取從站數(shù)據(jù)。在線命令RUN開(kāi)啟任務(wù),開(kāi)啟前先停止寫(xiě)入任務(wù),開(kāi)啟語(yǔ)法:RUN "ModbusRead", 1。

  ModbusSet.bas :建立通訊連接,主站數(shù)據(jù)復(fù)制到從站。在線命令RUN開(kāi)啟任務(wù),開(kāi)啟前先停止讀取任務(wù),開(kāi)啟語(yǔ)法:RUN "ModbusSet", 2。

  ModbusIni.bas :參數(shù)初始化,設(shè)置RS485的主從端,從站節(jié)點(diǎn)個(gè)數(shù)等信息。設(shè)為上電自動(dòng)運(yùn)行任務(wù)。

  

  運(yùn)動(dòng)控制

  

  例程設(shè)置了一個(gè)從站,支持設(shè)置多個(gè)從站,從站數(shù)量修改slaveCount參數(shù)。

  為了方便觀察數(shù)據(jù),主站和從站均使用的控制器,將兩個(gè)控制器通過(guò)RS485連接。

  注意主站控制器的RS485需要處于ModbusMaster模式,如下圖。從站控制器的RS485需要處于ModbusSlave模式。

  

  運(yùn)動(dòng)控制

  

  ModbusIni.bas文件程序

  '************************變量定義*********************

  Global slaveCount

  slaveCount = 1         '從站的數(shù)量

  '因?yàn)閺恼镜刂稟DDRESS不能為0, 0為廣播地址,所以后面的slaveID是從1開(kāi)始, 所以數(shù)組大小+1

  Global slaveID(slaveCount+1)

  For i = 1 to slaveCount                 '索引從1開(kāi)始

         slaveID(i)=i                             '從站ID從1開(kāi)始, 一般由撥碼或者從站設(shè)置軟件設(shè)置

  Next

  Global keepReading, modbusErrorStatus, writeSlaveID

  writeSlaveID = 1         '用戶可通過(guò)PC程序選擇要寫(xiě)入哪個(gè)從站數(shù)據(jù)

  keepReading = 1         '持續(xù)讀取的判斷標(biāo)志變量, 用戶不需要修改,用做while循環(huán)條件

  modbusErrorStatus = 0         '判斷是否通信正常的標(biāo)志變量

  '************************串口參數(shù)設(shè)置*********************

  'SETCOM (baudrate,databits,stopbits,parity,port [,mode] [,variable] [,timeout])

  '參數(shù)依此為:波特率,數(shù)據(jù)位,停止位,校驗(yàn)位,串口端口號(hào)(默認(rèn)232端口號(hào)0,485端口號(hào)為1)

  '后三個(gè)缺省參數(shù):MODBUS模式(14代表控制器做主站,默認(rèn)4為從站),MODBUS寄存器設(shè)置(2為缺省, MODBUS寄存器獨(dú)立, 不和VR或TABLE映射),通信超時(shí)閾值

  SETCOM(38400,8,1,0,1,14,2,1000)

  ModbusRead.bas文件程序

  '互斥操作,防止讀寫(xiě)同時(shí)操作,多個(gè)modbus指令同時(shí)運(yùn)行, 會(huì)造成通信出錯(cuò)

  '             STOP                 "modbusSet.bas"    

               '用做modbus通信的成功標(biāo)志變量    

  modbusErrorStatus = 0 '通訊正常值為             0    ,通訊異常值為             1

   

  while keepReading

      For i = 1 to slaveCount

          MODBUSM_DES(slaveID(i),1)                      '和從站1通訊    

          'MODBUSM_REGGET (0, 8, 10),從站1寄存器0-7的數(shù)據(jù)復(fù)制到主站10-17

          MODBUSM_REGGET(0,8,slaveID(i)*10)                     '獲取對(duì)端寄存器值    

          WAIT UNTIL MODBUSM_STATE <> 1         '等待消息結(jié)束

          IF MODBUSM_STATE=0 THEN

              ?slaveID(i),             "號(hào)節(jié)點(diǎn)通訊正常"    

          Else

              ?slaveID(i),             "號(hào)節(jié)點(diǎn)通訊出錯(cuò)!!!"    

              modbusErrorStatus = 1

                           '可以在此處加入用戶的錯(cuò)誤處理程序    

          Endif

          Delay(100) '兩個(gè)節(jié)點(diǎn)之間的通信延時(shí)

      Next

  Wend

  ModbusSet.bas文件程序

               '互斥操作,防止讀寫(xiě)同時(shí)操作    

  keepReading = 0

  STOP "ModbusRead.bas"

  modbusErrorStatus = 0

  '如果取消對(duì)從站ID的判斷(If), 則需要提前寫(xiě)好所有從站對(duì)應(yīng)的主站寄存器數(shù)據(jù)

  FOR i = 1 To slaveCount

      IF slaveID(i) = writeSlaveID THEN             '遍歷從站節(jié)點(diǎn),writeSlaveID參數(shù)選擇將主站數(shù)據(jù)寫(xiě)到哪個(gè)從站節(jié)點(diǎn)    

          MODBUSM_DES(slaveID(i),controllerPort) '建立主從站連接

                           'MODBUSM_REGSET(10, 2, 110),主站寄存器110-111的數(shù)據(jù)傳遞給從站1的10-11    

              MODBUSM_REGSET(10,2,100 + slaveID(i)*10)

          WAIT UNTIL MODBUSM_STATE <> 1 '等待消息結(jié)束

          IF MODBUSM_STATE=0 THEN

              ?slaveID(i),             "號(hào)節(jié)點(diǎn)通訊正常"    

          ELSE

              modbusErrorStatus = 1

              ?slaveID(i),             "號(hào)節(jié)點(diǎn)通訊出錯(cuò)!!!"    

                           '可以在此處加入用戶的錯(cuò)誤處理程序    

          ENDIF

          DELAY(100) '兩個(gè)節(jié)點(diǎn)之間的通信延時(shí)

      ENDIF

  NEXT

               '*****重新恢復(fù)循環(huán)讀取任務(wù),是否需要取決于應(yīng)用*****    

  DELAY(3000)

  'RUN             "ModbusRead.bas"    

  運(yùn)行效果

  1.MODBUSM_REGGET讀?。鹤x取從站MODBUSM_REG寄存器0-7共8個(gè)數(shù)據(jù)到主站的 MODBUSM_REG寄存器10-17。

  從站數(shù)據(jù):

  

  運(yùn)動(dòng)控制

  

  主站初始數(shù)據(jù)均為0,讀取完成主站數(shù)據(jù):讀取了從站的8個(gè)數(shù)據(jù)。

  

  運(yùn)動(dòng)控制

  

  2.MODBUSM_REGSET寫(xiě)入:將主站MODBUSM_REG寄存器110-111共2個(gè)數(shù)據(jù)寫(xiě)入從站的 MODBUSM_REG寄存器10-11。

  主站數(shù)據(jù):

  

  運(yùn)動(dòng)控制

  

  讀取完成從站的數(shù)據(jù)如下:讀取了主站的2個(gè)數(shù)據(jù)。

  

  運(yùn)動(dòng)控制

  

               06                  網(wǎng)口通訊例程    

  采用兩個(gè)控制器通過(guò)交換機(jī)網(wǎng)口互聯(lián)。

  主端控制器IP:192.168.0.11

  從端控制器IP:192.168.0.36

  分別使用ZDevelop軟件連接這兩個(gè)控制器,接線參考如下,采用ETH網(wǎng)口通道5,下載程序后查看運(yùn)行效果。

  

  運(yùn)動(dòng)控制

  

  主端程序

  MODBUS_REG(0)=0

  MODBUSM_des2($1 , 5,             "192.168.0.36"    )             '主端與從端建立連接,控制器IP不能相同    

  WHILE 1

          FOR i =0 TO 10

              MODBUS_REG(0) = i

              MODBUSM_REGSET(0,1,0) '主端數(shù)據(jù)寫(xiě)入從端

              MODBUS_REG(0) = 99

              MODBUSM_REGGET(0,1,0)             '主端從從端讀取數(shù)據(jù)    

              IF MODBUS_REG(0) <> i THEN '判斷MODBUSM_REGGET(0,1,0)是否讀取成功

              PRINT             "modbus_reg(0)="     MODBUS_REG(0),             "modbusm_state="     MODBUSM_STATE

              ENDIF

          NEXT

  WEND

  END

  從端程序

  ADDRESS=             1                      '從端站號(hào)    

  MODBUS_REG(0)=             0    

  WHILE             1    

      IF             MODBUS_REG(0) <> 0 THEN    

          PRINT             MODBUS_REG(0)    

      ENDIF

  WEND

  END

  運(yùn)行效果:

  主端先將數(shù)據(jù)傳給從端,修改主站數(shù)據(jù)后,再?gòu)膹亩双@取數(shù)據(jù),獲取數(shù)據(jù)成功,IF條件不滿足,打印不執(zhí)行。

  從端接受來(lái)自主端的數(shù)據(jù),改變了MODBUS_REG(0)的值,并循環(huán)打印。

               07                  網(wǎng)口互聯(lián)例程    

  采用兩個(gè)控制器通過(guò)交換機(jī)網(wǎng)口互聯(lián)。

  主端控制器IP:192.168.0.11

  從端控制器IP:192.168.0.36

  分別使用ZDevelop軟件連接這兩個(gè)控制器,采用CONNECT互聯(lián)通道20,必須兩個(gè)控制器都包含CONNECT通道才可以正常通訊,下載程序后查看運(yùn)行效果。

  主端程序

  MODBUS_REG(0)=0

  MODBUSM_des2($1 , 20,             "192.168.0.36"    )             '主端與從端建立連接,控制器IP不能相同    

  WHILE 1

          FOR i =0 TO 10

              MODBUS_REG(0) = i

              MODBUSM_REGSET(0,1,0) '主端數(shù)據(jù)寫(xiě)入從端

              MODBUS_REG(0) = 99

              MODBUSM_REGGET(0,1,0)             '主端從從端讀取數(shù)據(jù)    

              IF MODBUS_REG(0) <> i THEN '判斷MODBUSM_REGGET(0,1,0)是否讀取成功

              PRINT             "modbus_reg(0)="     MODBUS_REG(0),             "modbusm_state="     MODBUSM_STATE

              ENDIF

          NEXT

  WEND

  END

  從端程序

  ADDRESS=             1     '從端站號(hào)    

  MODBUS_REG(0)=             0    

  WHILE             1    

      IF             MODBUS_REG(0) <> 0 THEN    

          PRINT             MODBUS_REG(0)    

      ENDIF

  WEND

  END

  運(yùn)行效果:

  與網(wǎng)口通訊例程相同,主端先將數(shù)據(jù)傳給從端,修改主站數(shù)據(jù)后,再?gòu)膹亩双@取數(shù)據(jù),獲取數(shù)據(jù)成功,IF條件不滿足,打印不執(zhí)行。

  從端接受來(lái)自主端的數(shù)據(jù),改變了MODBUS_REG(0)的值,并循環(huán)打印。

  正運(yùn)動(dòng)技術(shù)運(yùn)動(dòng)控制器MODBUS通訊就講到這里,更多學(xué)習(xí)視頻及圖文詳解請(qǐng)關(guān)注我們的公眾號(hào)“             正運(yùn)動(dòng)小助手    ”。

  本文由正運(yùn)動(dòng)技術(shù)原創(chuàng),歡迎大家轉(zhuǎn)載,共同學(xué)習(xí),一起提高中國(guó)智能制造水平。文章版權(quán)歸正運(yùn)動(dòng)技術(shù)所有,如有轉(zhuǎn)載請(qǐng)注明文章來(lái)源。

  運(yùn)動(dòng)控制

  

標(biāo)簽:

點(diǎn)贊

分享到:

上一篇:圖爾克堅(jiān)固型LTE直線位移傳感器

下一篇:方案分享|禾川裝袋機(jī)整機(jī)解決...

中國(guó)傳動(dòng)網(wǎng)版權(quán)與免責(zé)聲明:凡本網(wǎng)注明[來(lái)源:中國(guó)傳動(dòng)網(wǎng)]的所有文字、圖片、音視和視頻文件,版權(quán)均為中國(guó)傳動(dòng)網(wǎng)(www.treenowplaneincome.com)獨(dú)家所有。如需轉(zhuǎn)載請(qǐng)與0755-82949061聯(lián)系。任何媒體、網(wǎng)站或個(gè)人轉(zhuǎn)載使用時(shí)須注明來(lái)源“中國(guó)傳動(dòng)網(wǎng)”,違反者本網(wǎng)將追究其法律責(zé)任。

本網(wǎng)轉(zhuǎn)載并注明其他來(lái)源的稿件,均來(lái)自互聯(lián)網(wǎng)或業(yè)內(nèi)投稿人士,版權(quán)屬于原版權(quán)人。轉(zhuǎn)載請(qǐng)保留稿件來(lái)源及作者,禁止擅自篡改,違者自負(fù)版權(quán)法律責(zé)任。

網(wǎng)站簡(jiǎn)介|會(huì)員服務(wù)|聯(lián)系方式|幫助信息|版權(quán)信息|網(wǎng)站地圖|友情鏈接|法律支持|意見(jiàn)反饋|sitemap

中國(guó)傳動(dòng)網(wǎng)-工業(yè)自動(dòng)化與智能制造的全媒體“互聯(lián)網(wǎng)+”創(chuàng)新服務(wù)平臺(tái)

網(wǎng)站客服服務(wù)咨詢采購(gòu)咨詢媒體合作

Chuandong.com Copyright ?2005 - 2024 ,All Rights Reserved 版權(quán)所有 粵ICP備 14004826號(hào) | 營(yíng)業(yè)執(zhí)照證書(shū) | 不良信息舉報(bào)中心 | 粵公網(wǎng)安備 44030402000946號(hào)