[研华MAS控制器] 如何连接松下激光测高传感器

 时间:2024-10-17 06:37:15

MAS控制器內建支持標準RS-232,RS-422,RS颍骈城茇-485通信。市面上許多外接設備如傳感器,條碼槍,...等等,都是透過這些方式與外部通信。在這個教程中我們選擇了松下小型激光位移嗒扬柰旦传感器HL-G1,透過RS-422連接,讀取量測到的數值。如何连线松下激光测试测高传感器,分以下步骤:1.传感器连接设置:除了硬件配線外,還需要設置松下传感器的COM與研華MAS-3245控制器的COM.2.编写程序:依照松下传感器的通訊協定電文,發送讀取命令後讀取回傳的電文。

工具/原料

MotionStudioV1.71

MotionRuntime1.71

松下小型激光位移传感器HL-G1系列

研華MAS-3245控制器

方法/步骤1-传感器连接设置

1、硬件连接将激光测高传感器通过RS422连接线接到MAS-3245的COM1上,配線請參考下圖。

[研华MAS控制器] 如何连接松下激光测高传感器

2、松下传感器的COM设定在通訊前需先設置松下传感器的COM波特率與RS-422,詳細說明請參照傳感器手冊。1.设定COM的波特率为384002.设定COM的通讯模式为RS422-1(RS-422握手信号)

[研华MAS控制器] 如何连接松下激光测高传感器

[研华MAS控制器] 如何连接松下激光测高传感器

3、研華MAS-3245的COM設定MAS-3245支持3種串列傳輸協定:RS-232,RS-422,RS-485,因此首先需在BIOS裡設置COM3為RS-4221.進入BIOS後,請選擇SuperIOConfiguration2.請選擇SerialPort3Configuration3.請設置為RS-422注意:控制器外殼上印刷的COM1實際是对应BIOS里面的COM3,與MotionStudio里面的COM3

[研华MAS控制器] 如何连接松下激光测高传感器

[研华MAS控制器] 如何连接松下激光测高传感器

[研华MAS控制器] 如何连接松下激光测高传感器

4、传感器电文在RS-422握手信号模式下,要讀取传感器的测定值必須依照松下的電文格式。分為1)發送讀取命令與2)讀取回傳的電文。编写BASIC程序時必須依照此電文格式。

[研华MAS控制器] 如何连接松下激光测高传感器

方法/步骤2-编写程序

1、连接实体控制器1.使用网线将笔记电脑与MAS-3245连起来。(笔记本电脑需安裝MotionStudio)2.在网路设置的本地连接的屬性中,设置笔记本IP地址和MAS-3245控制器IP地址(注意:笔记本和控制器IP地址需在同一网段,才可连线成功!)3.这边我们分别设定为[笔记本]192.168.1.1和[MAS-3245控制器]192.168.1.2。

[研华MAS控制器] 如何连接松下激光测高传感器

[研华MAS控制器] 如何连接松下激光测高传感器

[研华MAS控制器] 如何连接松下激光测高传感器

2、新建工程1.打开MotionStudio,在连接配置中选择以太网,并输入MAS控制器的IP地址(192.168.1.2),点击[应用]。2.连接成功后,新建一个MotionStudio工程,并创建一个Task程序“Task0”。

[研华MAS控制器] 如何连接松下激光测高传感器

[研华MAS控制器] 如何连接松下激光测高传感器

3、编写代码编写代码的重點1.松下傳感器的電文格式需以16進制發送,所以我們將电评鲦易纪文格式:%,0,1,#,R,M,D,*,*,CR轉為16進制發逭瑗亍作送。2.接收到電文後,擷取"測定值"的字符串3."測定值"的字符串轉換成數值後,需再除10000才是真正的量測值DIMLaser_WriteArray(10)ASBYTE={&H25,&H30,&H31,&H23,&H52,&H4D,&H44,&H2A,&H2A,&H0D}'发送电文格式:%01#RMD**DIMLaser_ReadArray(20)ASBYTE'接收电文格式DIMASSTRINGLaser_Result,Laser_Result1,Laser_Result2'處理過程中的字串變數DIMASDOUBLElaser_Value'回傳數值DIMASINTEGERi,m,nCOM_Open3'打开串口3COM_SET3,38400,0,1,8'设置串口通讯参数COM_WriteStream3,Laser_WriteArray(),10'发送上位请求命令COM_ReadStream3,Laser_ReadArray(),17'接受下位回传数据'解析下位回传数据Laser_Result=""'先清空字串FORi=0to16Laser_Result+=CHR(Laser_ReadArray(i))'返回用ASCII码表达的值对应的字符NEXTi'提取回傳的高度数据(提取RMD......**CR中的字符串,並轉成數值)m=INSTR(Laser_Result,"RMD")+3'取得字符串中"RMD"字符后的位置Laser_Result1=MID(Laser_Result,m)'截取"RMD"字符后的字符串n=INSTR(Laser_Result1,"*")-1'取得字符串中"*"字符前的位置Laser_Result2=MID(Laser_Result1,1,n)'截取"*"字符前的字符串laser_Value=VAL(Laser_Result2)/10000'将字符串转成數值变量PRINTlaser_Value'打印接收到的數值COM_Close3'关闭串口3

[研华MAS控制器] 如何连接松下激光测高传感器

4、运行MotionSutdio程序1.在MotionStudio项目窗口中,(1)点击编译,(2)编译完成后调试运行。2.在调试窗口可看到传感器回传测高数据。

[研华MAS控制器] 如何连接松下激光测高传感器

附录:指令说明

1、COM_OPEN语法:COM_OPENport描述:指定串口编号,打开串口。相应串口端口被打开后,才可以对该串口操作。该指令需要根据本地串口资源进行操作。参数:port串口端口号注意:打开串口操作仅适用于未打开的串口,如果串口资源已经被打开,下该指令操作会执行不成功,并返回错误。

2、COM_CLOSE语法:COM_ClOSEport描述:指定串口编号,关闭串口。参数:port串口端口号

3、COM_SET语法:COM_SETport,baudrate,parity,stopbits,databits描述:设置串口通讯参数。参数:port串口端口号;Baudrate波特率;范围:4800、9600、19200、38400、57600、115200Parity校验方式;范围:无(NONE)、奇(ODD)、偶(EVEN)Stopbits停止位;范围:2Databits数据位;范围:8

4、COM_ReadStream语法:COM_READSTREAMport,*strarray,num描述:串口自由协议读操作,通过串口读数据。执行到该指令时,控制器程序会等在该行,直到读到的字节个数和num参数指定的个数一致时,程序才会执行到下一行。参数:port串口端口号;*strarray存放读到的数据变量地址,一般为数组的地址或字符串地址num读取的字节个数或字符个数

5、COM_WriteStream语法:COM_WriteStreamport,*strarray,num描述:串口自由协议写操作,通过串口写数据。参数:port串口端口号;*strarray存放写出的数据变量地址,一般为数组的地址或字符串地址num写出的字节个数或字符个数

6、CHR语法:value=CHR(number)描述:返回用ASCII码表达的值对应的字符参数:numberASCII码值例程PRINTCHR(97)'97对应的字符为a,打印结果为aPRINTCHR(65)'65对应的字符为A,打印结果为A

7、MID语法:value=MID(string,start职邗珩垃[,number])描述:返回一个字符串的子字符串参数:string需要转换的字符串start返回的子字符串的起镫炜茛玳始转换位number子字符串的字符个数。如不填,则返回从start位后的所有字符例程PrintMid("abcdefg",3,2)'打印结果为cdPrintMid("abcdefg",3)'打印结果为cdefgPrintMid("abcdefg",2,1)'打印结果为b

8、INSTR语法:value=INSTR([sta筠续师诈rt,]string,[Any]substring)描述:查找字符串中第一关骇脘骱次出现的字符或者字串参数:start从第几个字符开始查找string在string这个字符串中查找字符或字串Any加上这个关键字后,string中先找到substring中的任意一个字符就会返回相应值substring需查找的字符或字串例程PrintInStr(2,"abcdefg","a")'打印信息为0,因从字符串的第2位开始找,找不到a,返回0PrintInStr("abcdefg","de")'打印信息为4,第4位找到dePrintInStr("abcdefg","h")'打印信息为0,字符串中没有hPrintInStr("abcdefg",Any"fbc")'打印信息为2,因加了any关键字,所以先找到b,b为第2位

9、VAL语法:value=VAL(string)描述:将字符串转换成一个数值水貔藻疽,字符串转换将从左到右按字符转换,如果先遇到至梦蛭悝非数值的字符,转换出来的数值将是0。参数:string字符串例程DIMASSTRINGstr1,str2str1="e3t"'因先遇到非数值字符e,所有打印结果为0str2="325.32"PRINTVAL(str1),VAL(str2)'打印结果为0,325.32

【新手必读 】OM20&50安全使用建议 Remote Desktop Manager 远程ESXi服务器 PotPlayer怎样在界面右栏显示所选项目? Win10专业版下载软件被阻止安装怎么办? FTP文件夹打开错误,Windows无法访问此文件夹~
热门搜索
叶罗丽娃娃图片 旋转木马图片 茶的图片 小象图片 百日草图片