qq群里老被人吊,看不起玩C#的,我只是业余看看下位机,发现汇川PLC是真的香,支持G代码,带的ecat轴数也多。就是新的购买渠道不行。 学习资料还有些欠缺。比如PLC去读取电脑上的G代码文件。每次拷贝下去很麻烦。下面我写个帖子:PLC控制电脑在D盘:打开文件,读写文件,删除文件,关闭文件。

常用函数库名称:SysFile/SysDir/File Access

1打开文件:

sysfile和systype这2个文件必须要装

高级》sysfile      基础文件

双击》再装个systype          基础数据类型

这2文件装好后,就可以准备干活了,来看下函数: ST空白行处》右击》输入助手

1:输出的是结构体,你就当她是对象,潘金莲来了(hFile)。。。

234:这3个是输入参数:2文件路径,3文件操作模式,4错误日志

这里要注意:文件路径不能有反斜杠\ 操作模式要记住名字,一会要用,错误日志是用来判断错误的。

在plc里写ST程序:

// PC端:打开文件
IF key THEN   // key是使能,调用方法前加个 阀门keyhFile  := SysFileOpen(szFile:='D:/cnc/weixiudiangong.txt'     //返回的是文件对象,szFile是文件路径, am:= ACCESS_MODE.AM_WRITE_PLUS            //plus是找不到文件的话,会新建这个文件,再打开, pResult:= udiopenerror1            //    这个是错误日志,用于判断文件操作是否遇到错误   );;
ELSE;
END_IF// SysFileOpen(szFile:= , am:= , pResult:= )

plc程序和C语言最大的区别就是,plc的函数全往main里面扔,靠bool标志位控制函数是否运行,看下效果:

和预想的一样,在我笔记本D盘新建了,维修电工的文件。

文件操作模式:追加,读,写

2读取文件:

// 中文有bugIF Test THEN    szTestLine := 'This is the first line.';hFile := SysFileOpen(szFile:='D:/Test/Test.txt', am:=ACCESS_MODE.AM_WRITE_PLUS, pResult:=ADR(udiOpenError1));  IF hFile <> RTS_INVALID_HANDLE    THEN//udiPosError := SysFileGetPos(hFile:=hFile, pulPos:=ADR(udiPos));udiWrite    := SysFileWrite(hFile:=hFile, pbyBuffer:=ADR(szTestLine), ulSize:=INT_TO_UDINT(LEN(szTestLine)), pResult:=ADR(udiWriteError1));   udiPosError2 := SysFileSetPos(hFile:=hFile , ulOffset:= 0 );udiRead    :=   SysFileRead(hFile:=hFile , pbyBuffer:=ADR(szReadLine) , ulSize:=SIZEOF(szReadLine) , pResult:= udiWriteError1); udiCloseError1  := SysFileClose(hFile:=hFile);END_IFTest:=FALSE;
END_IF
PROGRAM PLC_PRG
VARszTestLine: STRING(INT#128);szReadLine: STRING(INT#128);hFile     : RTS_IEC_HANDLE := RTS_INVALID_HANDLE;udiOpenError1: RTS_IEC_RESULT;udiPosError: UDINT;udiPos: __XWORD;udiWrite: __XWORD;udiWriteError1: RTS_IEC_RESULT;udiCloseError1: UDINT;Test: BOOL;udiPosError2: UDINT;udiRead: __XWORD;udiReadError1: POINTER TO RTS_IEC_RESULT;
END_VAR

解决bug:

// 中文
// 读取文件   电脑D盘  DGcnc文件(电工文件)
IF  dk打开文件 THEN//打开文件  DGcnc文件(电工文件) ACCESS_MODE.AM_READ_PLUSDGcnc := SysFile.SysFileOpen(szFile:='D:/cnc/DGcnc.txt' , am:=ACCESS_MODE.AM_WRITE_PLUS , pResult:=rz错误日志 );;IF    DGcnc <>  RTS_INVALID_HANDLE  THEN        // 不是-1时(文件打开成功)// 读
//      SysFile.SysFileRead(hFile:=DGcnc  , pbyBuffer:= ADR(rxbuff) , ulSize:=200 , pResult:= rz错误日志 );// 写len长度 :=SIZEOF (szTestLine);szTestLine := '维修电工到此一游!';SysFile.SysFileWrite(hFile:= DGcnc , pbyBuffer:= ADR( (szTestLine) ), ulSize:=INT_TO_UDINT(LEN(szTestLine)), pResult:= rz错误日志 );// 写追加// 删// 关闭文件SysFile.SysFileClose(hFile:= DGcnc);;ELSERETURN;//打开文件失败,退出END_IF;
ELSE;
END_IF

还得编码转换

//=======================================================

am:= ACCESS_MODE控制文件的操作模式:plus是写不了就新建这个文件

高级》file access

双击》再装个cmperrors

双击》再装个sysdir     这个是文件目录管理(视频是这么说的)  

双击   SysFile  

File Access是同步的,用这个。SysFile是异步的,且不能使用反斜杠。

access需要实例化,sysfile直接拖入就行,资料可能有错,sysfile不能使用反斜杠  \

提示无该变量:添加SysTypes Interfaces函数库,还有CmpErrors,3.3.1.40

 旁击

全局变量,没有的话,按提示新建。

//文件路径
wenjian文件路径 :  string := 'D:/cnc';

1开始调用库:

空行》右击》输入助手》

双击

函数就出来了

PROGRAM PLC_PRG
VARszTestLine: STRING(INT#128);szReadLine: STRING(INT#128);hFile     : RTS_IEC_HANDLE := RTS_INVALID_HANDLE;udiOpenError1: RTS_IEC_RESULT;udiPosError: UDINT;udiPos: __XWORD;udiWrite: __XWORD;udiWriteError1: RTS_IEC_RESULT;udiCloseError1: UDINT;Test: BOOL;udiPosError2: UDINT;udiRead: __XWORD;udiReadError1: POINTER TO RTS_IEC_RESULT;
END_VAR
IF Test THEN szTestLine := 'This is the first line.';hFile := SysFileOpen(szFile:='D:/Test/Test.txt', am:=ACCESS_MODE.AM_WRITE_PLUS, pResult:=ADR(udiOpenError1));  IF hFile <> RTS_INVALID_HANDLE    THEN//udiPosError := SysFileGetPos(hFile:=hFile, pulPos:=ADR(udiPos));udiWrite    := SysFileWrite(hFile:=hFile, pbyBuffer:=ADR(szTestLine), ulSize:=INT_TO_UDINT(LEN(szTestLine)), pResult:=ADR(udiWriteError1));   udiPosError2 := SysFileSetPos(hFile:=hFile , ulOffset:= 0 );udiRead    :=   SysFileRead(hFile:=hFile , pbyBuffer:=ADR(szReadLine) , ulSize:=SIZEOF(szReadLine) , pResult:= udiWriteError1); udiCloseError1  := SysFileClose(hFile:=hFile);END_IFTest:=FALSE;
END_IF

文件操作篇:3、基础内容-文件操作函数 - 中型PLC - 汇川技术官网-水滴社区 - Powered by Discuz!

库核对老出错,多装了库,自己去这网页下载文件。

PLC读取PC文件(汇川PLC读取电脑上的文件)相关推荐

  1. PC连接汇川PLC方法

    1.左侧目录树->Device(Am401-cpu1068TP/TN),如下图 2.通讯设置,有网线连接和串口线:连接.网线连接时候,汇川PLC默认ip地址是192.168.1.x,x为某个数, ...

  2. 电脑html文件存到手机,怎样把电脑上的文件传到手机上【技巧详情】

    电脑和手机这两种电子产品,都是我们日常所使用最广泛,以及最频繁的产品,电脑和手机这两种产品拥有自己独特的功能,各有各的用处.它们俩在操作过程中都是不可替代的,然而有的时候,由于种种需求,我们需要将电脑 ...

  3. win7电脑上的文件打开方式选错了怎么办

    使用电脑的过程中总会遇到各种各样的问题,就有win7用户跟小编反应说自己一不小心选错了文件的打开方式,导致该文件再也打不开了,win7电脑上的文件打开方式选错了怎么办呢?那针对这个问题,小编就给大家讲 ...

  4. 汇川plc可以用C语言吗,PC与汇川PLC_ModbusTCP_Test

    文件名大小更新时间 PC与汇川PLC_ModbusTCP_Test\PC与汇川PLC_ModbusTCP_Test\ModbusApiTestForVb\.vs\ModbusApiTestForVb\ ...

  5. CK-FR208-EC与汇川PLC配置走EtherCAT通讯指南

    CK-FR208-EC与汇川PLC配置走EtherCAT通讯指南 CK-FR208-EC是一款支持标准工业Ethercat协议的多通道工业RFID读写器,读卡器工作频率为13.56MHZ,支持对I-C ...

  6. 汇川PLC和PLC之间ModebusTCP通讯

    目录 一.AM402做主站和H3U通讯 1.Modebus主站中组态配置 2.读从站寄存器配置 3.写从站寄存器配置 4.程序中使用对从站读写操作的寄存器值 (1)I/O映射中地址关联 (2)创建自定 ...

  7. CK-GW06-E01与汇川PLC的MODBUC TCP通信

    准备阶段: CK-GWO6-E01网关 POE交换机 网线 汇川PLC编程软件 1.打开汇川PLC编程软件AutoShop 新建工程,选择对应的PLC型号,点击确定,本次以H5U-A8型号为例. 选择 ...

  8. 使用OPCServer通过Modbus协议对汇川PLC进行工业数据采集

    在现有的文章中较少提及对汇川PLC的数据采集,本文通过个人实际测试结果进行描述 Los geht's! 具体描述: 1.使用的汇川PLC型号为:H3U-1616MT-XP 2.OPCServer软件中 ...

  9. 汇川PLC相关与 CK-FR08-E00 关于 modbus-tcp

    汇川PLC(AC801-0221-U0R0)相关与 CK-FR08-E00 关于 modbus-tcp 通信配置指南 1.新建工程,选择对应的plc型号 2.点击网络组态,找到modbus-tcp双击 ...

  10. C#使用Modbus协议读写汇川PLC的M区寄存器(基本接口封装)

    C#使用Modbus-TCP协议读取汇川PLC,Modbus读写是按照MW地址来处理的 [寄存器单位是字WORD,占用两个字节,类似于C#中的ushort(UInt16)],实际测试发现字符串是按照字 ...

最新文章

  1. 面板——卡片面板、常规折叠面板、手风琴折叠
  2. 数论-扩展中国剩余定理
  3. 简单了解Python网络爬虫
  4. pythonfor循环100次_以写代学: python for循环 range函数 xrange函数
  5. pandas.describe()参数的意义
  6. AI实战:基于AdvancedEAST的自然场景图像文本检测算法
  7. [BZOJ4542] [Hnoi2016] 大数 (莫队)
  8. Python 爬虫经常需要睡眠防止被封IP time sleep
  9. 实现微信摇一摇部分功能
  10. 基于JWT前后端token认证
  11. PHPExcel存放多个sheet报错: Invalid parameters passed.
  12. django+xadmin在线教育平台慕学网(一)
  13. Vivado IP核fifo使用指南
  14. 用计算机怎么算加权标准差,Tableau,如何计算加权标准差
  15. arduino 超声波测距原理_基础教程10 Arduino 超声波测距
  16. matlab 画表格函数,excel表格数据曲线图模拟函数-如何在excel中绘制函数图像?
  17. 如何当好IT项目经理
  18. js实现video视频标签试看6分钟
  19. upc PinkRabbit写情书(枚举)
  20. 菜鸟小超超开发小记(一)

热门文章

  1. Google 真的抄百度了吗?
  2. Sql 日期操作 获取年月日等
  3. 【图】【热传】安全漏洞破解的奇迹
  4. 面试经历---UC(2016年01月11日下午面试)
  5. 华为2016年精英挑战赛总结
  6. 收集的SQL Server性能相关资料
  7. 路径正确下,Eclipse读取txt文件仍失败
  8. 【Linux 内核 内存管理】物理分配页 ⑦ ( __alloc_pages_slowpath 慢速路径调用函数源码分析 | 判断页阶数 | 读取 mems_allowed | 分配标志位转换 )
  9. java富甲天下_富甲天下之激斗三国
  10. edge浏览器如何把网页放到桌面_edge浏览器怎么把网页放桌面 - 卡饭网