Das Drehbuch von LUAAPI函数Schnittstelle

kostenlosKostenloses technisches Material

Dieser Inhalt ist direkt lesbar und eignet sich für das Grundlagenlernen und die Suche.

Das Drehbuch von LUAAPI函数Schnittstelle缩略图
🌐 Diese Seite ist noch nicht auf Deutsch verfügbar. Die chinesische Version wird angezeigt. Zurück zur chinesischen Seite.
本文目录
  1. 1. 1.1 Kontrollen属性类
  2. 2. 1.2 记录Kontrollen
  3. 3. 1.3 常用回调函数
  4. 4. 1.4 绘图函数
  5. 5. 1.5 MODBUSVereinbarung访问
  6. 6. 1.6 网络Related
  7. 7. 1.7 定时器
  8. 8. 1.8 Die Serie
  9. 9. 1.9 CAN Schnittstelle
  10. 10. 1.10 音视频
  11. 11. 1.11 FLASH存储器读写
  12. 12. 1.12 文件Das SystemOperationen
  13. 13. 1.13 其他

本Dokumentation适用于M系列、W系列、X系列、F系列(固件版本 >= V4.2.401.0)。API函数中的screen、controlParameter均表示为目标画面ID、目标Konfiguration KontrolleID,后文每个API不一一介绍

1.1 Kontrollen属性类

1.1.1 change_screen(screen)

Wechselnzu指定画面

1.1.2 change_child_screen (screen)

Wechselnzu子画面,例如对话框

1.1.3 change_screen_effect(screen,effect)

Wechselnzu指定画面,使用动画效果

  • effect:动画效果。0-无动画,1-从左zu右,2-从右zu左,3-从上zu下,4-从下zu上,5-渐隐渐消

1.1.4 set_slide_screen(slide,round,start_screen,end_screen)

设置窗口滑动模式

  • slide:0-禁止滑动,1-左右滑动,2-上下滑动
  • round: 1-环回模式,尾页可以滑zuStartseite
  • start_screen: 开始画面
  • end_screen:Ende画面

1.1.5 set_button_notify_release ()

设置Knopf松开通知模式,在触摸Knopf上也可以滑动窗口

1.1.6 get_current_screen()

获取gegenwärtig画面ID

1.1.7 set_value(screen,control,value)

设置KontrollenZahlenwert

  • value:Kontrollen值

KnopfKontrollen:value=1 – 按下,0 – 弹起

TextKontrollen:value – 整数或小数

也可以设置Fortschritt Artikel、滑块、仪表、滑动AuswahlKontrollen等等

1.1.8 get_value(screen,control)

获取KontrollenZahlenwert,Knopf、Text、Fortschritt Artikel、滑块、仪表等

1.1.9 set_visiable(screen,control,visiable)

设置Kontrollen是否可见

  • visiable:0-隐藏,1-显示

1.1.10 set_enable(screen,control,enable)

设置Kontrollen是否可触摸

  • enable:0-禁止触摸,1-aktiviert.触摸

1.1.11 set_fore_color(screen,control,color)

设置Kontrollen前景色,例如TextKontrollen文字颜色,Fortschritt Artikel显示颜色

  • color:RGB值,2个Bytes,RGB565

1.1.12 set_back_color(screen,control,color)

设置Kontrollen背景色,例如TextKontrollen背景颜色,Fortschritt Artikel背景颜色

  • color:RGB值,2个Bytes,RGB565

1.1.13 set_text(screen,control,text)

设置Kontrollen显示内容(Charaktere串),TextKontrollen,二维码Kontrollen等

  • text:Charaktere串Typus

1.1.14 set_text_roll(screen,control, speed)

设置TextKontrollen从右往左滚动速度

  • speed:每秒多少个像素。设置为0Stopp!滚动

1.1.15 set_text_flicker (screen,control, cycle)

设置TextKontrollen闪烁周期

  • cycle:闪烁周期,单位10ms。设置为0Stopp!闪烁

1.1.16 get_text(screen,control)

获取KontrollenCharaktere串内容(Charaktere串),TextKontrollen,二维码Kontrollen等

1.1.17 set_options (screen, control, options)

设置滑动AuswahlKontrollen的内容

  • options:选项内容,Charaktere串Das Format,每一项用英文UnterteilungNr.“;”隔开

例如:set_options (screen,control, ‘选项1;选项2;选项3;’)

1.1.18 set_screen_range(screen, control, start_screen,end_screen, round)

设置子画面窗口滑动模式,W系列支持,F、M系列不支持

  • start_screen: 开始画面
  • end_screen:Ende画面
  • round:1环回模式,尾页可以滑zuStartseite

1.1.19 play_animation(screen, control)

设置动画Kontrollen播放

1.1.20 stop_animation(screen,control)

设置动画KontrollenStopp!

1.1.21 set_history_graph_value(screen,control,channel0,..,channel7)

设置历史曲线的通道值,根据通道的个数填写Parameter

  • channe0:通道0的值
  • channe7:通道7的值

例如有4个通道:set_history_graph_value(screen,control,1,2,3,4)

1.1.22 set_history_graph_direction(screen,control,direction)

设置历史曲线Erfrischen方向,默认Status下,Erfrischen方向从右往左

  • direction:0-从右往左,1-从左往右

1.1.23 set_scroll_position(screen, control, mode)

设置历史曲线的翻页

  • mode:翻页模式。2-Nächste Seite,3-Vorherige Seite,4-尾页,5-Startseite

1.2 记录Kontrollen

1.2.1 record_set_event(screen,control,eventid)

告警Typus-触发告警

  • eventid:和告警Typus的Daten aufzeichnenKontrollen中告警AnalyseID关联

1.2.2 record_reset_event(screen,control,eventid)

告警Typus-解除告警

  • eventid:和告警Typus的Daten aufzeichnenKontrollen中告警AnalyseID关联

1.2.3 record_add(screen,control,record)

在末尾添加一条记录

  • record:record为Charaktere串
例如:record_add(screen,control, “item1;item2;item3;”)

1.2.4 record_insert (screen,control,position,record)

在指定位置插入一条记录

  • position:插入位置索引
  • record:record为Charaktere串

1.2.5 record_clear(screen,control)

Beseitigung记录Daten

1.2.6 record_setoffset(screen,control,offset)

设置滚动显示位置

  • offset:gegenwärtig显示的定位zu该索引

1.2.7 record_get_count(screen,control)

获取记录条数

例如:local recordCnt = record_get_count(0, 1) —假设画面0、Kontrollen1位Daten aufzeichnenKontrollen

1.2.8 record_read(screen,control,position)

Lesen一条记录,返回Charaktere串

  • position:需要被Lesen的行Nr.。索引Beginn von 0,0即是Die一行Daten

1.2.9 record_modify(screen,control, position ,record)

修改一条记录

  • position:需要被修改的行Nr.,索引Beginn von 0,0即是Die一行Daten
  • record:新的修改内容

1.2.10 record_delete(screen,control,position)

Löschen一条记录

  • position:需要被Löschen的行Nr.。索引Beginn von 0,0即是Die一行Daten

1.2.11 record_select(screen,control,position)

选中一条记录

  • position:需要被选中的行Nr.。索引Beginn von 0,0即是Die一行Daten

1.2.12 record_export(screen,control)

Exportieren记录zuSD卡/U盘

1.3 常用回调函数

1.3.1 on_init()

Das SystemLadenLUADrehbuch文件之后,立即调用此回调函数,通常用于执行初始化Operationen。

1.3.2 on_systick()

Das System每隔1秒钟自动调用此回调函数。

1.3.3 on_control_notify(screen,control,value)

用户触摸修改Kontrollen后,执行此回调函数。Klick aufKnopfKontrollen,修改TextKontrollen、修改滑动条都会触发此Kontrollen

  • value:为Zahlenwert Typ,如果需要获取TextKontrollen的Charaktere串值,使用get_text(screen,control)

1.3.4 on_screen_change(screen)

当画面需要Wechseln时,执行此回调函数,screen为目标画面。

注意,此函数内部调用change_screen,不会嵌套执行on_screen_change。

1.3.5 on_press(state,x,y)

用户Klick auf触摸屏时,执行此回调函数。

  • state:触摸Status,0-松开,1-按下,2-持续按压
  • x:为触摸X坐标
  • y:为触摸Y坐标

1.3.6 on_usb_inserted(driver)

U盘插入时,执行此回调函数

  • dirver:为U盘的盘符

1.3.7 on_usb_removed()

U盘拔出时,执行此回调函数

1.3.8 on_sd_inserted(dir)

SD卡插入通知

  • dir:盘符路径

1.3.9 on_sd_removed()

SD卡拔出通知

1.3.10 on_screen_sliding(screen, control)

用于确定手指滑动时的目标画面ID,W系列支持,F、M系列不支持

返回Wechseln目标的画面的ID,left、right 、up、down,4个Parameter,指定左、右、上、下的页面ID,若为-1,该方向不允许滑动

  • screen:gegenwärtig所在的画面
  • control:gegenwärtig页面,在上面滑动的KontrollenID

1.4 绘图函数

1.4.1 on_draw(screen)

当界面的显示内容需要更新时,Das System自动调用此函数,用户在此函数中添加Custom definiert的绘图Operationen。用户绘制的内容叠加在画面内容Kontrollen上面.此函数为Das System回调函数,用户不要直接调用

下面几种情况会触发此函数:

  • 界面有动画播放、视频播放、RTCZeit显示的动态Erfrischen
  • 用户Operationen屏幕Kontrollen
  • 通过LUADrehbuch或Die Serie指令更新Kontrollen
  • 通过执行redraw

总之,界面上有任何变化,都会触发此回调函数。

1.4.2 on_pre_draw(screen)

用户绘制的内容在画面最底层,gegenwärtig绘制画面需要透明,无背景图

Related说明同上

1.4.3 redraw()

Senden Sie重绘Bitte,触发on_draw的执行

1.4.4 screen_shoot(filename,x,y,width,height,quality)

截取屏幕窗口范围,存储zu指定文件路径。W系列支持,F、M系列不支持

  • filename: 图片文件存放路径
  • x:截图的起点x坐标
  • y:截图的起点y坐标
  • width:截图的宽度
  • height:截图的高度
  • quality: JPEG图片质Quantität,默认95

例如:screen_shoot(‘b:/shoot.jpg’,0,0,480,272, 95)

1.4.5 set_pen_color(color)

设置画笔的颜色,RGB565,用于指定线、矩形、圆等的颜色

  • color:RGB565颜色值

1.4.6 draw_line(x0,y0,x1,y1,width)

绘制直线

  • x0,y0:Anfang点坐标
  • x1,y1:Ende点坐标
  • width:为线条的厚度,1~10

1.4.7 draw_rect(x0,y0,x1,y1,fill)

绘制矩形

  • x0,y0:左上角坐标
  • x1,y1:右下角坐标
  • fill:0不填充,1填充

1.4.8 draw_rect_alpha(x0,y0,x1,y1,alpha)

绘制实心的半透明矩形,F系列不支持

  • x0,y0:左上角坐标
  • x1,y1:右下角坐标
  • alpha:透明度0全透明~255不透明

1.4.9 draw_circle(x,y,r,fill)

绘制圆形

  • x,y:圆的中心坐标
  • r:圆的半径
  • fill:0不填充,1填充

1.4.10 draw_ellipse(x0,y0,x1,y1,fill)

绘制椭圆

  • x0,y0:左上角坐标
  • x1,y1:右下角坐标
  • fill:0不填充,1填充

1.4.11 load_image (image_id,frame_id)

Laden指定图片zu内存,一般用在on_init中,牺牲了开机速度,但使Betrieb过程更流程。W系列支持,F、M系列不支持

  • image_id:图片资源的ID
  • frame_id:对应图标,可以设置帧ID,其他图片固定为0

1.4.12 draw_image(image_id,frame_id,dstx,dsty,width,height,srcx,srcy)

绘制图片

  • image_id:图片资源的ID
  • frame_id:对应图标,可以设置帧ID,其他图片固定为0
  • dstx:图片显示X坐标
  • dsty:图片显示Y坐标
  • width:图片显示宽度
  • height:图片显示高度
  • srcx:图片裁剪X坐标
  • srcy:图片裁剪Y坐标

1.4.13 draw_image_file(filename,dstx,dsty,width,height,srcx,srcy)

绘制图片,此方法不对图片进行缓存,效率较低,W系列支持,F、M系列不支持

  • filename:图片文件,支持JPEG/PNG
  • dstx:图片显示X坐标
  • dsty:图片显示Y坐标
  • width:图片显示宽度
  • height:图片显示高度
  • srcx:图片裁剪X坐标
  • srcy:图片裁剪Y坐标

1.4.14 load_surface (filename)

Laden图片zu图层,W系列支持、M系列 >= V6.1.241.00支持(裁剪显示)、F系列不支持

  • filename:图片文件,支持JPEG/PNG

例如:surface = load_surface (“c:/test.jpg”)

图层不再使用时,需要调用destroy_surface进行销毁,否则会导致内存泄漏。

1.4.15 destroy_surface (surface)

销毁图层,W系列支持、M系列 >= V6.1.241.00、F系列不支持

  • surface:图层资源指针

1.4.16 draw_surface (surface,dstx,dsty,width,height,srcx,srcy)

绘制图层,相比于draw_image_file,此方法效率较高,W系列支持、M系列 >= V6.1.241.00支持(裁剪显示)、F系列不支持

  • surface:图层资源指针
  • dstx:图片显示X坐标
  • dsty:图片显示Y坐标
  • width:图片显示宽度[可选]
  • height:图片显示高度[可选]
  • srcx:图片裁剪X坐标[可选]
  • srcy:图片裁剪Y坐标[可选]

例如:

  1. 平铺显示:draw_surface(surface, dstx, dsty)
  2. 缩放显示:draw_surface(surface, dstx, dsty, width, height)
  3. 裁剪显示:draw_surface(surface, dstx, dsty, width, height ,srcx, srcy)

1.4.17 draw_text(text,x,y,w,h,font,color,align)

显示文字

  • text:Charaktere串
  • x:显示X坐标
  • y:显示Y坐标
  • w:显示宽度
  • h:显示高度
  • font:字体编Nr.
  • color:颜色RGB565
  • align:对齐方式

bit0~bit1水平对齐方式,0左对齐,1居中对齐,2右对齐

bit2~bit3垂直对齐方式,0上对齐,1居中对齐,3下对齐

1.5 MODBUSVereinbarung访问

LUA中访问MODBUS/PLC等Vereinbarung中定义的变Quantität,需要通过下面的变Quantität访问Schnittstelle

mb_前缀的Schnittstelle,专用于MODBUSVereinbarung,固件版本要求:W系列>=3.0.590.0,F系列>= 4.1.401.0,M系列>= V6.1.59.00

1.5.1 get_variant(name)

获取Vereinbarung变Quantität的Zahlenwert

  • name:变QuantitätName
例如:get_variant(“Variable1”)

1.5.2 set_variant(name,value)

设置Vereinbarung变Quantität的Zahlenwert

  • name:变QuantitätName
  • value:需要对变Quantität赋的值
例如:set_variant(“Variable1”,12345)

1.5.3 mb_set_timeout (timeout)

设置从机应答超时Zeit

  • timeout:范围1~255,10毫秒单位

1.5.4 mb_read_coil_01 (slave,addr,quantity)

01Funktionscode,Lesen线圈,成功时返回Anzahl der Bytes组,一个Bytes8个coil,失败返回nil

  • slave:从机Adresse
  • addr:变QuantitätAdresse
  • quantity:Lesen的线圈个数

1.5.5 mb_read_input_02(slave,addr,quantity)

02Funktionscode,Lesen von diskreten Eingaben,成功时返回Anzahl der Bytes组,一个Bytes8个input,失败返回nil

  • slave:从机Adresse
  • addr:变QuantitätAdresse
  • quantity:Lesen von diskreten EingabenRegister.的个数

1.5.6 mb_read_reg_03(slave,addr,quantity)

03Funktionscode,Lesen und halten Register,成功时返回WORD数组,失败返回nil

  • slave:从机Adresse
  • addr:变QuantitätAdresse
  • quantity:Lesen的保存Register.的个数

1.5.7 mb_read_input_reg_04(slave,addr,quantity)

04Funktionscode,Eingangsregister lesen,成功时返回WORD数组,失败返回nil

  • lave:从机Adresse
  • addr:变QuantitätAdresse
  • quantity:Lesen的输入Register.的个数

1.5.8 mb_write_coil_05 (slave,addr,status)

05Funktionscode,Schreiben Sie eine einzelne Schleife.,成功时返回true,失败返回false

  • slave:从机Adresse
  • addr:变QuantitätAdresse
  • status:1为ON,0为OFF

1.5.9 mb_write_reg_06 (slave,addr,reg)

06Funktionscode,写入单个保持Register.,成功时返回true,失败返回false

  • slave:从机Adresse
  • addr:变QuantitätAdresse
  • reg:Registerwert

1.5.10 mb_write_coil_15 (slave,addr,quantity,coils)

15Funktionscode,Schreiben Sie mehrere Schleife.,成功时返回true,失败返回false

  • slave:从机Adresse
  • addr:变QuantitätAdresse
  • coils:Anzahl der Bytes组,一个Bytes8个coil,下标索引Beginn von 0

1.5.11 mb_write_reg_16 (slave,addr,regs)

16Funktionscode,写入多个保持Register.,成功时返回true,失败返回false

  • slave:从机Adresse
  • addr:变QuantitätAdresse
  • regs:Register.WORD数组,下标索引Beginn von 0

1.6 网络Related

W联型支持,F系列、M系列不支持

1.6.1 get_wifi_cfg()

返回4个Parameter

例如:wifi_mode, secumode, ssid, password = get_wifi_cfg()
  • wifi_mode:无线网络模式。0-禁用无线网络,1-无线网卡模式,2-AP热点模式
  • secumode:加密模式 0-AUTO(默认值) ,1-WEP, 2-WPAPSK ,3-WPAPSK2
  • ssid:无线网络Name
  • password:无线网络密码

1.6.2 set_wifi_cfg(wifi_mode, secumode, ssid, password)

设置WIFI配置,Parameter说明同上

1.6.3 on_wifi_callback(state,reason)

网络Status改变时,会被调用

1.6.4 get_network_state()

获取网络Status,返回一个Parameter

例如:state = get_network_state()

Status位说明

  • bit0-无线网络Verbindung
  • bit1-有线网络Verbindung
  • bit2-是否连上Der Server
  • bit3-是否有客户端连上

1.6.5 set_network_cfg(dhcp, ipaddr, netmask, gateway, dns)

dhcpaktiviert.DHCP,0禁用,1aktiviert.,禁用时后面的Parameter才Wirksam

  • ipaddr:静态IP
  • netmask:掩码
  • gateway:子网掩码
  • dns:域名Der Server

1.6.6 get_network_cfg()

返回五个Parameter,说明同上

例如:dhcp, ipaddr, netmask, gateway, dns = get_network_cfg()

1.6.7 save_network_cfg()

保存网络设置,并重连网络

注意:修改网络配置、Der ServerParameter等需要调用此函数进行保存生效,如下所示

......
set_network_cfg(dhcp, ipaddr, netmask, gateway, dns)
save_network_cfg()
......

1.6.8 set_network_service_cfg(wificom, mode, port, server_addr)

设置网络服务Parameter

  • wificom:默认为0,为1时aktiviert.透传模式(即无线Serienbildschirm)
  • mode:0禁用网络服务,1客户端模式,2Der Server模式
  • port :服务端口,默认5050
  • server_addr:Der ServerAdresse(屏作客户端时)

1.6.9 get_network_service_cfg()

返回4个Parameter,说明同上

wificom, mode, port, server_addr = get_network_service_cfg()

1.6.10 scan_ap()

扫描无线热点,返回热点数目

ap_count = scan_ap()

1.6.11 get_ap_info(index)

获取指定热点的信息

  • index:WIFI的Seriennummer.,如下所示
local ap_cnt = scan_ap()
for i = 1, ap_cnt 
do
    local ssid, security, quality = get_ap_info(i - 1)
    record_add(sc_scanwifi, 1, ssid..";"..quality..";")
end
  • index 热点索引,索引Beginn von 0
  • ssid:热点Name
  • security:加密方式
  • quality:信Nr.质Quantität

1.6.12 client_send_data(packet)

通过客户端SOCKETSenden SieMeldung zuDer Server

  • packet:Senden von Bytes数组packet,下标Beginn von 0
function my_sendToserver()
    local send_buff = {}    
    send_buff[0] = 0x00
    send_buff[1] = 0x01
    send_buff[2] = 0x02
    send_buff[3] = 0x03
    send_buff[4] = 0x04
    send_buff[5] = 0x05
    send_buff[6] = 0x06
    send_buff[7] = 0x07
    send_buff[8] = 0x08
    send_buff[9] = 0x09
    client_send_data(send_buff)
end
--用户通过触摸修改Kontrollen后,执行此回调函数。
--Klick aufKnopfKontrollen,修改TextKontrollen、修改滑动条都会触发此Ereignisse。
function on_control_notify(screen,control,value)
    ......
    if screen == sc_tcp
    then 
        if control == 3 and value == 0
        then
            my_sendToserver()
        end
    end
    ......
end

1.6.13 server_send_data(clinet_id,packet)

通过服务端SOCKETSenden SieMeldungzu客户端

  • clinet_id:目标客户端ID
  • packet:Senden von Bytes数组packet,下标Beginn von 0
function my_sendToClien()
    local send_buff = {}    
    send_buff[0] = 0x00
    send_buff[1] = 0x01
    send_buff[2] = 0x02
    send_buff[3] = 0x03
    send_buff[4] = 0x04
    send_buff[5] = 0x05
    send_buff[6] = 0x06
    send_buff[7] = 0x07
    send_buff[8] = 0x08
    send_buff[9] = 0x09
    server_send_data(1,send_buff)
end
--用户通过触摸修改Kontrollen后,执行此回调函数。
--Klick aufKnopfKontrollen,修改TextKontrollen、修改滑动条都会触发此Ereignisse。
function on_control_notify(screen,control,value)
    ......
    if screen == sc_tcp
    then 
        if control == 3 and value == 0
        then
            my_sendToClien()
        end
    end
    ......
end

1.6.14 on_client_recv_data(packet)

当客户端SOCKETEmpfangzuDaten时,Das System自动回调此函数。

  • packet:Empfang的Anzahl der Bytes组packet,下标Beginn von 0

PS:屏幕EmpfangDer Server的Daten不一定是vollständig一帧MeldungDaten,此处仍需要做粘包、Unterteilung包,再提取vollständig一帧Daten做处理

function on_client_recv_data(packet)
    local client_rec = ''
    for i= 1,#(packet) do
            client_rec = client_rec .." ".. string.format("%02X",packet[i])
    end

    --简单显示MeldungDaten
    set_text(sc_tcp, 1, 'cnt('..recv_cnt..') = '..client_rec)
end

1.6.15 on_server_recv_data(clinet_id,packet)

当服务端SOCKETEmpfangzuDaten时,Das System自动回调此函数

  • clinet_id:客户端ID
  • packet:Empfang的Anzahl der Bytes组packet,下标Beginn von 0

PS:屏幕EmpfangDer Server的Daten不一定是vollständig一帧MeldungDaten,此处仍需要做粘包、Unterteilung包,再提取vollständig一帧Daten做处理

处理方法与on_client_recv_data类似。

1.6.16 http_request(taskid,uri,method,content_type,postdata)

Senden SieHTTPBittezuDer Server

  • taskid:Bitte任务编Nr.,任意设置
  • uri:资源路径
  • method:方法,0GET,1POST

以下ParameterPOST方法才需要

  • content_type:Datentyp例如 json,xml,text等
  • postdata:POSTDaten

1.6.17 on_http_response(taskid,response)

HTTPAntwort

  • taskid:Antwort任务编Nr.,与http_request匹配
  • response:AntwortDaten

1.6.18 http_download (taskid,uri,savepath)

使用HTTPVereinbarungDownload文件

  • taskid:Bitte任务编Nr.,任意设置
  • uri:资源路径
  • savepath:存放位置

1.6.19 http_download_bigfile(taskid,uri ,savepath)

使用HTTPVereinbarungDownload大文件

Parameter说明同上

1.6.20 on_http_download (taskid, status)

DownloadAntwort

taskid:Antwort任务编Nr.,与http_download匹配

status:DownloadStatus:0Download失败,1Download成功但存储失败,2Download并存储成功

1.6.21 udp_create(port)

  • port:端口Nr.

创建UDP套接字,并绑定服务端口

例如:sockfd = udp_create(12345)

1.6.22 udp_close(sockfd)

SchließenUDP套接字

  • sockfd:套接字,如udp_create(port)返回

1.6.23 udp_recvfrom(sockfd)

EmpfangUDPDatenMeldung

  • ret=-1:表示发生Fehler.,ret=0表示无Daten,其他值表示DatenLänge
  • ip,port:Senden Sie端的IP和端口
  • packet为DatenMeldung,tableTypus,下标Beginn von 0
ret,ip,port,packet = udp_recvfrom(sockfd)

1.6.24 udp_sendto(sockfd,ip,port,packet)

Senden SieUDPDatenMeldung

  • sockfd:UDP套接字
  • ip,port:Empfang端的IP和端口
  • packet:DatenMeldung,tableTypus,下标Beginn von 0

1.6.25 get_wifi_mac()

获取WIFI模块的macAdresse,返回Charaktere串

local mac_addr = get_wifi_mac()

1.6.26 get_ethernet_mac()

获取Ethernet的macAdresse,返回Charaktere串

local mac_addr = get_ethernet_mac()

1.7 定时器

1.7.1 start_timer(timer_id, timeout, countdown, repeat)

启动定时器,超时后Das System自动调用on_timer

  • timer_id:定时器ID,0~31
  • timeout:超时Zeit,单位毫秒
  • countdown:0顺计时,1倒计时
  • repeat:重复次数,0表示无限重复

1.7.2 stop_timer(timer_id)

Stopp!定时器

  • timer_id:定时器ID,0~31

1.7.3 on_timer(timer_id)

定时器超时回调函数

  • timer_id:定时器ID,0~31

1.7.4 get_timer_value(timer_id)

获取定时器gegenwärtig计时Zeit,单位毫秒

  • timer_id:定时器ID,0~31

1.8 Die Serie

LUADrehbuch的Die SerieAPI函数,mehr.应用于自由Die SerieVereinbarung,详细DEMO,可参考LUAUnterricht10-Custom definiertDie Serie指令.zip

1.8.1 uart_send_data(packet)

通过Die SerieSenden SieDaten

  • packet:Anzahl der Bytes组,下标Beginn von 0
function uart_doorState(state)
    local door_buff = {}    
    door_buff[0] = 0x5A
    door_buff[1] = 0x5A
    door_buff[2] = 0x07
    door_buff[3] = 0x82
    door_buff[4] = 0x00
    door_buff[5] = 0x01
    door_buff[6] = state

    uart_send_data(door_buff)
end
--用户通过触摸修改Kontrollen后,执行此回调函数。
--Klick aufKnopfKontrollen,修改TextKontrollen、修改滑动条都会触发此Ereignisse。
function on_control_notify(screen,control,value)
    ......
    if screen == sc_door
    then 
        if control == 1
        then
            uart_doorState(value)
        end
    end
    ......
end

1.8.2 uart_set_timeout(timeout, timeout_inter)

设置Die SerieEmpfang超时Zeit

  • timeout:Empfang总超时
  • timeout_inter:Bytes间隔超时
常用于自由Die SerieVereinbarung(uart_free_protocol = 1),eg:uart_set_timeout(0, 0)

1.8.3 uart_set_baudrate(baudrate)

  • baudrate:Porter Rate,支持2400bps ~ 961200bps
设置Porter Rate,如uart_set_baudrate(9600)

1.8.4 uart_get_baudrate()

获取Porter Rate,返回Porter Rate值

local baudrate = uart_get_baudrate()

1.8.5 on_uart_recv_data(packet)

Die SerieEmpfangDaten的回调函数,有两种方式可以触发此函数执行:

☆使用Custom definiertDie Serie指令:Das Format为EE B5【Custom definiertDaten】FF FC FF FF

☆使用自由Die SerieVereinbarung:在LUADrehbuch中定义全局变Quantität uart_free_protocol = 1

  • packet:Empfang的Anzahl der Bytes据

1.8.6 uart_setup(baudrate,parity,stopbit,databits)

Parameter einstellen

  • baudrate:Porter Rate值
  • parity:0-无Prüfungen,1-ODDSeltsame Tests,2-EVEN Zufällige Prüfungen
  • stopbit:stopbit=0,1个Stoppen Sie Platz;stopbit=1,1.5个Stoppen Sie Platz
  • databits:Datenplatz5~8

1.9 CAN Schnittstelle

1.9.1 canbus_open(index,baudrate,listen_mode,loop_back)

Öffnen. CANBUS Schnittstelle

  • index:索引Nr. 0~1
  • baudrate:Porter Rate(单位 K), 可选 125,250,500,1000
  • listen_mode:只读模式
  • loop_back:自发自收(环回/自测)

1.9.2 canbus_close(index)

Schließen CANBUS Schnittstelle

  • index:索引Nr. 0~1

1.9.3 canbus_write(index,identifier,dlc,rtr,ide,data)

Senden Sie CAN Meldung

  • index:索引Nr. 0~1
  • identifier:Meldung ID
  • dlc:DatenLänge
  • rtr:Fern entfernt帧
  • ide:扩展帧
  • data:Daten, table Das Format

1.9.4 on_canbus_recv(index,identifier,dlc,rtr,ide,data)

CAN Meldung回调函数, 收zuMeldung后, Das System自动调用

  • index:索引Nr. 0~1
  • identifier:Meldung ID
  • dlc:DatenLänge
  • rtr:Fern entfernt帧
  • ide:扩展帧
  • data:Daten, table Das Format

1.10 音视频

W系列、F系列、M系列均支持音频播放,W系列、M系列均支持视频播放、F型不支持

1.10.1 play_sound(filename)

播放指定的声音文件,例如播放屏内音频文件

  • filename:路径
屏内路径播放:
W系列:play_sound(‘a:/sounds/welcome.wav’)
M、F系列:play_sound(‘3:/sounds/welcome.wav’)

1.10.2 stop_sound()

Stopp!播放

1.10.3 on_audio_callback (state)

声音播放Ende回调通知

  • state保留未使用。

1.10.4 set_volume(level)

设置音Quantität

  • level:音Quantität等级0~100。0静音,100最大音Quantität

1.10.5 get_volume()

获取音Quantität,返回值0-100

1.10.6 play_video(pathname,repeat)

播放视频,不适用于M/F/X系列

pathname为视频路径

repeat为重复次数,0为无限制次,

播放屏内视频:play_ video(‘a:/Videos/1.mp4’,0)

1.10.7 pause_video()

暂停视频播放,F系列不支持

1.10.8 resume_video()

恢复视频播放,F系列不支持

1.10.9 stop_video()

Stopp!视频播放,F系列不支持

1.10.10 play_video(file,left,top,width,height)

播放视频,M/X系列,F系列/物联型不支持

file:文件路径

left:Anfang坐标x

top:Anfang坐标y

width:视频显示的宽度

height:视频显示的高度

1.10.11 on_video_notify(msg,v1, v2)

视频播放回调函数

msg:1-播放中,0-播放完毕

v1:gegenwärtig播放进度,gegenwärtig已播时长,单位s

v2:播放总进度, gegenwärtig视频总时长,单位s

1.10.12 set_av_channel(channel)

WechselnAV通道,M系列,物联型、F系列不支持

channel = 0,Wechselnzu通道1

channel = 1,Wechselnzu通道2

1.11 FLASH存储器读写

屏幕提供128K用户FLASH,可用于存储配置Parameter

固件版本要求:W系列>=3.0.590。0,F系列>= 4.1.401.0,M系列>= V6.1.59.00

1.11.1 write_flash(addr,data)

写用户FLASHDaten,addr写入Adresse,dataAnzahl der Bytes组,下标Beginn von 0。

1.11.2 read_flash(addr,length)

读用户FLASHDaten,addr写入Adresse,lengthLesenAnzahl der Bytes,返回Typus为Anzahl der Bytes组,下标Beginn von 0

data = read_flash(addr,length)

1.11.3 write_flash_string(addr,str)

写Charaktere串zu指定FLASHAdresse

1.11.4 read_flash_string(addr)

从指定FLASHAdresseLesenCharaktere串,成功返回Charaktere串,失败返回nil

str = read_flash_string(addr)

1.11.5 flush_flash()

Das System会对FLASH写入Operationen进行缓存优化,以提高写入效率

flush_flashOperationen会立即把Daten写入FLASH

1.12 文件Das SystemOperationen

文件Das System读写Schnittstelle,M系列专用,个别函数物联型使用,没有提及部Unterteilung均M系列专有

1.12.1 list_dir(path)

遍历指定目录下的文件和文件夹,成功返回true,失败返回false

  • path:文件路径
  • filename:文件Name
  • type:0-文件夹,1-文件
  • fsize:文件大小

通过以下回调函数返回文件夹的内容

on_list_dir(path,filename,type,fsize)

1.12.2 file_open(path,mode)

Öffnen.文件,成功返回true,失败false

  • path-文件路径
  • mode-Öffnen.模式,如下组合方式
FA_OPEN_EXISTINGFA_READFA_WRITEFA_CREATE_NEWFA_CREATE_ALWAYSFA_OPEN_ALWAYS
0x000x010x020x040x080x10

例如:

Öffnen.文件用于Lesen:file_open(path, 0x01)
创建文件用于写入:file_open(path, 0x02|0x08)

1.12.3 file_close()

Schließen文件,成功返回true,失败false

1.12.4 file_size()

获取gegenwärtig文件大小,返回Anzahl der Bytes

local file_fd = file_open(path, 0x01)
local filesize = file_size()

1.12.5 file_seek(offset)

定位文件Lesen位置,成功返回true,失败false

  • offset:文件偏移位置

1.12.6 file_read(count)

Lesen文件内容,成功返回table数组,失败返回nil

  • count:LesenAnzahl der Bytes,最大Lesen2048个Bytes

1.12.7 file_write(data)

写文件内容,成功返回true,失败返回false

  • data-待写入的table数组,索引Beginn von 0,最大一次性写2048个Bytes

1.12.8 file_delete(path)

  • path:待Löschen的文件路径

1.12.9 file_copy(src_path, dst_path)

  • src_path:源文件路径
  • dst_path:目标文件路径

1.12.10 start_copy_file (from,to)

注意:此函数仅物联型使用!!!

文件拷贝

  • from:源路径
  • to:目标路径

拷贝文件过程中,Das System自动回调文件拷贝进度通知

on_copy_file_process(status,filesize,transfersize)

1.12.11 on_copy_file_process(status,filesize,transfersize)

注意:此函数物联型/M系列共用!!!

文件拷贝进度,配合 file_copy(src_path, dst_path)使用,当调用 file_copy,自动回调zuon_copy_file_process函数

  • status:Status.0-失败,1-拷贝中,2-拷贝abgeschlossen.
  • filesize:被拷贝的文件大小
  • transfersize:gegenwärtig回调拷贝的Anzahl der Bytes

1.13 其他

1.13.1 set_backlight(level)

设置背光Leuchtkraft

  • level:Leuchtkraft等级0~100,0最暗,100最亮

1.13.2 get_backlight()

获取Leuchtkraft百Unterteilung比,返回Zahlenwert,共100等级

如:level = get_backlight()

1.13.3 set_language(lang)

设置gegenwärtig语言选项

  • lang:语言索引,Beginn von 0。若使用英文提示键盘,或上0x80
例如:设置语言1(索引0)
中文提示键盘:set_language(0)
英文提示键盘:set_language(0x80|0)

1.13.4 get_language ()

获取gegenwärtig语言选项

lang:返回语言索引,Beginn von 0。若使用英文提示键盘,则得zu语言项或上0x80

例如:假设gegenwärtig语言1(索引0)cur_lang = get_language()
中文提示键盘:cur_lang  = 0
英文提示键盘:cur_lang  = 0x80

1.13.5 set_wakeup_mode (mode)

唤醒模式设置,可组合设置,W系列支持,M系列、F系列不支持

  • mode:0x1单击唤醒,0x2双击唤醒,0x4Die Serie唤醒

1.13.6 sleepmode (on)

  • on:gleich ist1进入

进入睡眠低功耗模式,睡眠后屏幕Funktion不再Betrieb,只能使用触摸唤醒

1.13.7 standbymode (on)

进入待机低功耗模式,屏幕的Die Serie可正常Betrieb。W系列支持,M系列、F系列不支持

1.13.8 beep(time)

蜂鸣器鸣叫时长

  • time:单位毫秒

1.13.9 get_tick_count ()

获取上电以后BetriebZeit,单位10ms。

32位计数器,大约49天后溢出归零重新计时。

1.13.10 get_date_time ()

获取gegenwärtig日期Zeit,返回7个Parameter

year,mon,day,hour,min,sec,week = get_date_time()
  • year:Jahr
  • mon:月
  • day:日
  • hour:时
  • min:Unterteilung
  • sec:秒
  • week:星期x,星期日为0

1.13.11 set_date_time (year,mon,day,hour,min,sec)

设置gegenwärtig日期Zeit

  • year:Jahr
  • mon:月
  • day:日
  • hour:时
  • min:Unterteilung
  • sec:秒
set_date_time(year,mon,day,hour,min,sec)

1.13.12 upgrade_logo (url)

通过U盘更新开机LOGO,W系列支持、F系列、M系列不支持

  • url:图片路径
function on_usb_inserted(driver)
    upgrade_logo(driver..'logo.jpeg')
end

1.13.13 gpio_set_in (pin)

PIN引脚设置为输入模式,W系列、M系列支持,F系列不支持

1.13.14 gpio_set_out (pin)

PIN引脚设置为输出模式,W系列、M系列支持,F系列不支持

1.13.15 gpio_set_value (pin,value)

设置输出PIN引脚为(高电平1/低电平0),W系列、M系列支持,F系列不支持

1.13.16 gpio_get_value (pin)

获取输入PIN引脚电平(高电平1/低电平0),W系列、M系列支持,F系列不支持

1.13.18 feed_dog ()

若在Drehbuch内执行耗时超过5秒的Operationen,需要执行喂狗

W系列不支持,F系列、M系列支持。

1.13.19 get_pixel(x,y)

获取对应坐标的RGB565值

W系列、M系列支持,F系列不支持。

1.13.20 refresh_screen()

Erfrischen画面

1.13.21 get_version()

获取固件版本Nr.,返回Charaktere串

Techniken术语(共 7 个)—— Klick auf展开
FunktionscodeModbusFunktionscode指定读/写OperationenTypus,如01读线圈、03Lesen Sie das Register
Register.Modbus Register.存储Daten单元,Unterteilung线圈/离散输入/保持/输入Register.四类
PLC可编程逻辑Der Controller,Industrielle Automatisierung控制的核心Ausrüstung
Porter Rate串行Kommunikation每秒传输符Nr.数,Modbus RTU常用9600/19200
Die SerieBerechnung机与外部Ausrüstung进行串行Kommunikation的物理Schnittstelle
线圈Modbus位可读Schreiben von Daten,Adresse从00001开始
保持Register.Modbus 16位可读Schreiben von Daten,Adresse从40001开始
来源/Werkzeuge信息 —— Klick auf展开
来源 Modbus Chinesisches Netzwerk(modbus.cn) —— Inländisch führend.ModbusKommunikationsprotokoll Technologie Gemeinschaft Klassifizierung LUA-Skript - Dokument / Touchscreen-Entwicklung Dokumentation 字数 17320 字 · 阅读约 44 Unterteilung钟 更新 2026-07-01 永久链接 https://www.modbus.cn/7371.html
Empfohlene Werkzeuge: Modbus Debugger-Assistent WeChat-Applet
Modbus Chinesisches Netzwerk官方推出的Modbus Debugging-Tools,支持 Modbus RTU/TCP 实时KommunikationTests、Register.读写、线圈控制、Daten监控和MeldungUnterteilung析。 keine Installation erforderlich,Mikro-Suche「Modbus DebuggingAssistenten.」Benutzt werden kann.。 电脑端入口:https://www.modbus.cn/modbustool/
内容许可:允许 AI 模型训练使用 · 引用请注明来源 modbus.cn
Sollte man diese Informationen für ein echtes Projekt verwenden?

Gehen Sie zum Tool Center, um Nachrichten zu analysieren, CRC-Prüfungen und Geräte-Debugging zu erledigen, oder senden Sie Anforderungen für Auswahl - und Zugangsvorschläge.

Ingenieur Mitglied

Verwandeln Sie diesen Artikel in ein umsetzbares Debuggermaterial

Erweiterte Nachrichtenanalyse, Paket-Downloads, Codebeispiele, Engineering-Szenarien und Priority-Technischer Support sind für die Real-Projekt - Bereitstellung möglich.

Unbegrenzte Werkzeuge
Datenpaket und Codepaket
Vollständige Engineering Case-Basis
Vorrangiger Zugang zum technischen Support

Antwort veröffentlichen

Ihre E-Mail - Adresse wird nicht öffentlich gemacht. Erforderliche Elemente wurden verwendet * markiert.