当前位置: 首页 > wzjs >正文

公司做自己的网站平台台搜索引擎调词平台

公司做自己的网站平台台,搜索引擎调词平台,wordpress中国风,程序开源网站最近在做一个机床的控制系统,是用来打磨轴承滚子的,用到了昆仑通态触摸屏,西门子1200,以及1个台达变频器,五个私服电机。大致就是下面这个设备。 对于西门子1200运动控制的相关内容,以及调试过程中遇到的坑…

最近在做一个机床的控制系统,是用来打磨轴承滚子的,用到了昆仑通态触摸屏,西门子1200,以及1个台达变频器,五个私服电机。大致就是下面这个设备。

 对于西门子1200运动控制的相关内容,以及调试过程中遇到的坑,改天再写一个文章。这里重点介绍配置文件的功能。

控制界面上需要做一个工件加工参数读写功能,见下图。实际上就是配方功能。奈何mcgspro自带的配方功能,界面实在是太丑了。于是想自己做一个。

 既然自己做一个,就完全脱离软件自带的配方功能。自带的配方功能,应该是数据库保存的。找了半天,没有发现软件有提供数据库操作的函数接口。也就是说,没法像软件自带的配方那样,弄到数据库里面。既然使用数据库不行,那就直接写到文件。

按照每行一个配方,第一列是配方名称,后面是配方值,逗号隔开,也就是csv文件格式。见下图。---表示没有配方。

 首先是配方初始化,在软件启动的时候,对配方进行初始化,见下面代码。大致原理就是如果配置文件不存在,就创建一个。注意FileAppend,不会创建文件。所以之前必须有FileWriteByStr.

dim i as INTEGER
dim r as INTEGER
dim str as STRING
r=!FileReadByStr("$MCGS_DIR_USER/qcfg.csv",0,-1,str,TEXT_UTF8) '尝试去读配置文件
if r<0 then      '如果读取不到,就给文件初始化了。!FileWriteByStr("$MCGS_DIR_USER/qcfg.csv","---,",FILE_TRUNC,TEXT_UTF8) '强制创建新的文件i=2          '第一行写了,第二行开始WHILE i<=50  '循环写剩下的49行!FileAppend("$MCGS_DIR_USER/qcfg.csv","---,\n")I=i+1ENDWHILE
ENDIF

其次在,参数列表页面。需要创建50个用于显示参数名称的标签,以及创建50个用于显示参数名称的变量,变量都是字符串类型。

标签绑定显示变量:

在列表页面,启动脚本,添加代码,主要原理是读取配置文件。然后用SplitString,换行符,分割为一个字符串数组。每一行一个配置。

然后根据第一个逗号位置,给配置名称提取出来,名通过DataSetString给声明的名称变量赋值,以达到显示配置名称的功能。具体代码如下:

dim names(100) as STRING
dim str as STRING
DIM r as INTEGER
dim i as INTEGER
dim p as INTEGER
dim nm as STRING
dim vn as STRING
dim v as STRING
r=!FileReadByStr("$MCGS_DIR_USER/qcfg.csv",0,-1,str,TEXT_UTF8)   '读取配置文件r=!SplitString(str,names,"\n")	'按换行分割为字符串数组i=1
while  i<=50   				'循环所有配置p= !InStr(1, names[i],",")	'查找第一个逗号位置nm=!left(names[i],p-1)		'截取配置名称vn="NM"+!Format(i-1,"000")	'拼接变量名称,!DataSetString(vn,nm )  	'写入已经声明的变量i=i+1
ENDWHILE

 有列表页面,还得加一个编辑页面,见下图。是一个弹出窗口。

辑页面的逻辑是,用户从列表页面点击,记录当前点击的项目下标到全局变量。然后打开编辑页面,编辑页面读取配置文件,按换行符进行分割,然后找到对应的下标,找到对应的行,进行逗号分割,按固定的顺序转换为变量值,显示到表格中。

从列表页面跳转到编辑页面的代码:

Index.Value=0'对应的配置下标存储一下
参数编辑.Open()'打开参数编辑页面
参数编辑.BringToTop()'置顶

下面是编辑页面,从文件找到对应的配置行,并转换为变量值的代码:


dim str as STRING
dim names(100) as STRING
dim ss as STRING
dim r as INTEGER
dim i as INTEGER
DIM val(60) as STRING
r=!FileReadByStr("$MCGS_DIR_USER/qcfg.csv",0,-1,str,TEXT_UTF8) '读取配置文件
if r < 0 then '如果没用读取到,就用默认值i=1WHILE i<=50names[i]=","i=i+1ENDWHILE
ELSEr=!SplitString(str,names,"\n")'对读取的配置文件进行分割
ENDIFss = names[index+1]					'获取对应下标的行	r=!SplitString(ss,val,",")			'分割配置行i=1									'下面全是字符串转换为对应的变量值T压轮转速A0.Value=!Val(val[i+1])T压轮转速A1.Value=!Val(val[i+2])T压轮转速A2.Value=!Val(val[i+3])T压轮转速A3.Value=!Val(val[i+4])T压轮转速A4.Value=!Val(val[i+5])

保存配置文件的逻辑,读取配置文件,分割成配置行。然后给当前页面的所有值,再按顺序拼接成字符串。然后循环写入配置,当前行的配置,使用新拼接的字符串。代码如下:

dim str as STRING
dim names(100) as STRING
dim ss as STRING
dim r as INTEGER
DIM I AS INTEGER
dim con as STRING
r=!FileReadByStr("$MCGS_DIR_USER/qcfg.csv",0,-1,str,TEXT_UTF8)
if r < 0 then '如果没有文件,就使用默认值i=1WHILE i<=50names[i]="---,"i=i+1ENDWHILE
ELSEr=!SplitString(str,names,"\n")ENDIFss=Name.Valuess=ss+","+!Str(T压轮转速A0.Value)ss=ss+","+!Str(T压轮转速A1.Value)ss=ss+","+!Str(T压轮转速A2.Value)ss=ss+","+!Str(T压轮转速A3.Value)ss=ss+","+!Str(T压轮转速A4.Value)ss=ss+","+!Str(T砂轮转速A0.Value)ss=ss+","+!Str(T砂轮转速A1.Value)ss=ss+","+!Str(T砂轮转速A2.Value)ss=ss+","+!Str(T砂轮转速A3.Value)ss=ss+","+!Str(T砂轮转速A4.Value)ss=ss+","+!Str(T震动速度A0.Value)ss=ss+","+!Str(T震动速度A1.Value)ss=ss+","+!Str(T震动速度A2.Value)ss=ss+","+!Str(T震动速度A3.Value)ss=ss+","+!Str(T震动速度A4.Value)ss=ss+","+!Str(T油石压力A0.Value)ss=ss+","+!Str(T油石压力A1.Value)ss=ss+","+!Str(T油石压力A2.Value)ss=ss+","+!Str(T油石压力A3.Value)ss=ss+","+!Str(T油石压力A4.Value)ss=ss+","+!Str(T加工时间A0.Value)ss=ss+","+!Str(T加工时间A1.Value)ss=ss+","+!Str(T加工时间A2.Value)ss=ss+","+!Str(T加工时间A3.Value)ss=ss+","+!Str(T加工时间A4.Value)ss=ss+","+!Str(T压轮转速B0.Value)ss=ss+","+!Str(T压轮转速B1.Value)ss=ss+","+!Str(T压轮转速B2.Value)ss=ss+","+!Str(T压轮转速B3.Value)ss=ss+","+!Str(T压轮转速B4.Value)ss=ss+","+!Str(T砂轮转速B0.Value)ss=ss+","+!Str(T砂轮转速B1.Value)ss=ss+","+!Str(T砂轮转速B2.Value)ss=ss+","+!Str(T砂轮转速B3.Value)ss=ss+","+!Str(T砂轮转速B4.Value)ss=ss+","+!Str(T震动速度B0.Value)ss=ss+","+!Str(T震动速度B1.Value)ss=ss+","+!Str(T震动速度B2.Value)ss=ss+","+!Str(T震动速度B3.Value)ss=ss+","+!Str(T震动速度B4.Value)ss=ss+","+!Str(T油石压力B0.Value)ss=ss+","+!Str(T油石压力B1.Value)ss=ss+","+!Str(T油石压力B2.Value)ss=ss+","+!Str(T油石压力B3.Value)ss=ss+","+!Str(T油石压力B4.Value)ss=ss+","+!Str(T加工时间B0.Value)ss=ss+","+!Str(T加工时间B1.Value)ss=ss+","+!Str(T加工时间B2.Value)ss=ss+","+!Str(T加工时间B3.Value)ss=ss+","+!Str(T加工时间B4.Value)i=1con="" '最终存储的字符串WHILE i<=50if i=Index.Value+1 then '使用新拼接的字符串con=con+ss+"\n"ELSE    '使用原有的配置文件con=con+ names[i]+"\n"ENDIFi=i+1ENDWHILE!FileWriteByStr("$MCGS_DIR_USER/qcfg.csv",con,FILE_TRUNC,TEXT_UTF8)'写入配置文件数据读写.Refresh()
参数编辑.Close()

设置为当前配置,就是把已经读取的配置文件,赋值给正在加工的变量里面,主要就是赋值,代码省区。从备份当前配置,是把当前的的配置,赋值给编辑页面,代码也不贴了。

导入和导出,就是给这个配置文件拷贝到u盘,或者从u盘拷贝到触摸屏。用的FileCopy。

如果有更好的方法,欢迎来指导。由于项目涉及到商业问题,代码暂时不能上传,可以私信。

http://www.dtcms.com/wzjs/548206.html

相关文章:

  • 网站建设公司58抖音代运营怎么样呢
  • 网站title怎么修改网络运维与安全就业方向
  • 网站建设 业务板块名称英文网站seo
  • 做车身拉花的网站wordpress更改链接后404
  • 网站点赞怎么做的怎样下载模板网站
  • 推广自己的产品中国十大seo公司
  • 学电商比较好的网站有哪些高端医疗网站开发
  • 如何检测网站被搜索引擎惩罚了手机百度官网首页
  • 网站插件 wordpress哈尔滨建站软件
  • 中山网站优化排名郑州免费建站
  • 网站建设发朋友圈的图片盐城做网站价格
  • 响应式网站的优缺点网站建设公司的市场开拓方案
  • 万家灯火网站建设网站项目开发流程及规范
  • 唯品会网站建设方案如何进行品牌宣传与推广
  • 福建省环保厅网站建设项目验收公司官网制作需要多少钱一个
  • 开工作室做网站怎样找资源企业管理培训课程网课免费
  • dz网站收款即时到账怎么做的优化方案怎么写
  • 广东省建设信息网站东莞主页网站制作
  • 外贸式响应式网站自己做的网站怎样链接数据库
  • 我做的网站怎么是危险网站网站seo策划方案案例分析
  • 网站界面用什么做Wordpress 1688 采集
  • 好的网站设计培训机构建培网
  • 制作企业网站价格网站建设海报素材图片
  • 上海网站建设哪家技术好北京代做网站
  • 视频网站怎么做排名工程公司简介范文
  • 二 网站建设的重要性在线制作图片加文字的软件
  • 做商业地产的网站优化大师百科
  • 如何建设一个自己+的网站首页北京师范大学学风建设专题网站
  • 潍坊地区网站制作网站运维合同
  • 云服务器建网站wordpress 火箭