2019-01-30 13:20:40
命名空间:sharClass功能:创建或者解析标准逗号分隔符的CSV文件,以及CSV相关的其它功能功能详细说明:在自动化机器的程序中,保存生产数据广泛应用CSV文件格式。EXCEL中就可以把文档保存为CSV格式,它其实是一种文本文件,只不过要求以特定的符号分隔两个字段内容,详细情况各位可以用EXCEL实验一下就知道了。勇哥不推荐使用mdb数据库方式保存生产数据,虽然看上去它拥有查询方便的优势,但是...
2019-01-21 22:02:57
缘起今天在看一个bug,之前一个分支的版本是正常的,在新的分支上上加了很多日志没找到原因,希望回溯到之前的版本,确定下从哪个提交引入的问题,但是还不想把现在的修改提交,也不希望在Git上看到当前修改的版本(带有大量日志和调试信息)。因此呢,查查Git有没有提供类似功能,就找到了git stash的命令。综合下网上的介绍和资料,git stash(git储藏)可用于以下情形:发现有一个类是多余的,想...
2019-01-17 10:06:23
开篇Git 三大特色,分支,暂存区,工作流,今天终于要写到 WorkFlow 了,我彷佛已经看到胜利的曙光,走起。何谓工作流WorkFlow 的字面意思,工作流,即工作流程。在分支篇里,有说过这样的话:因为有分支的存在,才构成了多工作流的特色。事实的确如此,因为项目开发中,多人协作,分支很多,虽然各自在分支上互不干扰,但是我们总归需要把分支合并到一起,而且真实项目中涉及到很多问题,例如版本迭代,版...
2019-01-16 23:09:48
引言:git fetch 相当于是从远程获取最新到本地,不会自动merge git pull:相当于是从远程获取最新版本并merge到本地 在实际使用中,git fetch更安全一些git fetch和git pull都可以将远端仓库更新至本地那么他们之间有何区别?想要弄清楚这个问题有有几个概念不得不提。FETCH_HEAD: 是一个版本链接,记录在本地的一个文件中,指向着目前已经从远程仓库取下来...
2019-01-16 22:50:59
我习惯每篇博客都有个开篇还记得 Git 系列第一篇 Git 自我介绍的话吗?其中有 Git 自己都赞同的三大特色cheap local branching, convenient staging areas, and multiple workflows轻量的本地分支, 方便的暂存,以及多工作流。其中因为有分支的存在,才构成了多工作流的特色,所以 Branch 不愧为 Git 的王牌特色。这篇博客...
2019-01-16 22:27:53
这是开篇有人说,暂存区是 Git 最精彩的设计,同时也是最难理解的部分,两者我都感觉不太明显,但当我想写关于暂存区的理解后,发现的确不怎么好讲,这个玩意,有点只可意会的感觉,用 Git 用熟练了,很自然体会到暂存区设计的精彩之处。在我看来,学习其他命令之前,对暂存区有一个概念和大概理解是非常重要的,因为,很多命令都涉及到了它。为什么 commit 之前要先 add 一下呢?我在刚接触 Git 命令...
2019-01-16 21:18:01
今天勇哥在 git pull时出现了下面的错误:error: The following untracked working tree files would be overwritten by merge:勇哥在线查看这个“边电压测试机PLC程序”的目录,跟本地库的对应目录对比。发现本地库的目录缺少下面的文件,缺少一个目录和两个文件。(线上的目录)(本地的目录)这种情况看来是,本地库没有把远程库...
2019-01-15 21:28:10
多重互锁指令是允许相互嵌套的,如下图所示:其中,编号并非是必须全部是唯一的,而是保证两两MILH之间不一样即可。也就是说,编号可以0,1,0,1这样嵌套使用下去。为了解释清楚多重互锁的意义,勇哥编写了下面的例程。这里我做了两把锁,编号为0,状态位为W100.00编号为1,状态位为W100.01如果我不导通W0.00的话,你会发现你直接导通w0.01是没有效果的。实际上,如果你不导通W0.00,那么...
2019-01-14 14:51:59
现象截图是这样的,看图片有时候这个现象是偶尔出现,有时候还取图不完整。这个现象可尝试从网卡设置上解决问题。还有一个方法是在程序上做一点设置。我们先看下网卡设置。很简单,网卡配置中有一项被称为“巨帧”,可以由原来“不启用”而改为最大值为4096.在有些网卡配置中,这个称为“接收缓冲区”,把它设置为最大。由于这种现象在IEE1394相机上看不到,因此请童鞋们毫不怀疑要从网络设定上去找问题。另一个方法是...
2019-01-12 15:37:25
最近公司的一个案子是要测量电芯的直流内阻,费了相当大的力气,主要是对直流内阻这种测量玩法不太清楚。一直以来测试的要么是电芯的电压,要么是电芯的电阻,或者是电芯边电压,它们都是直接测量,并且一次搞定。直流内阻不同,它需要两个步骤,第一次取放电前的电压,第二次取放电后的电压,而且放电后需要间隔指定时间再取电压。然后通过公式算出直流内阻(DCIR),通过这个DCIR,可以判断电池的好坏。有关电芯的内阻参...
2019-01-12 07:54:38
这个问题较少出现,但是出现了真正会让你崩溃。现象是这样的:早上这个工程打开还好好的,但是到了中午吃了个饭,下午重新打开它,发现VS会失去响应,然后进行重启,然后继续失去响应。你无法继续编辑这个工程! 连修改的机会都没有!!对于那些习惯于一天才做一次备份的童鞋来说,这真是毁灭性的打击,因为一天的工作白搞了!你得从昨天的备份重新开始。也许你想试着研究一下昨天的备份与今天的工程究竟有什么不一样,勇哥想说...
2019-01-11 17:54:41
注意,勇哥的这个问题是建立一个前提上面的:即我已经有一个线上的仓库, 创建第二个仓库后, 怎么把磁盘上的一个目录传到新仓库上去?参考了下面的教程:git remotegit remote -vgit initgit add xxxgit commit -m 'xxx' git remote add origin ssh://software@172.16.0.30/~/yafen...
2019-01-11 14:31:48
EtherCAT是目前工业以太网中一种主流的总线通讯协议,相比传统的工业以太网,有着众多突出的优点、应用简单是EtherCAT总线的一个显著特点。 概述EtherCAT是目前工业以太网中一种主流的总线通讯协议,相比传统的工业以太网,有着众多突出的优点、应用简单是EtherCAT总线的一个显著特点。 应用特点应用简单?!关于EtherCAT总线的应用具有以下几个特点:1)拓扑灵活——几乎支持任何形...
2019-01-10 08:44:19
用git pull来更新代码的时候,遇到了下面的问题:error: Your local changes to the following files would be overwritten by merge:
xxx/xxx/xxx.php
Please, commit your changes or stash them before you can merge.
Aborti...
2019-01-08 21:21:10
勇哥学了一段时间CP1H的指令后,突然有兴趣想做点东西。突然想到我学易语言、C#、python后第一个想到的肯定是做点歌软件。(用来点播本地的MTV音乐带搜索功能的小软件,因为勇歌的爱好就是在户外唱歌)。不过,点歌软件有大数据的处理、和互联网操作,cp1h是搞不了的,于是勇哥想到搞简单一点。我只需要利用单片写一段红外遥控的代码,用串口发给plc,plc收到后按我约定好的指令格式向计算机上的一段音乐...
2019-01-08 13:52:13
数据移位指令就是位操作指令,在C语言中,或者熟悉单片机编程,或者熟悉PC汇编语言的朋友都不会陌生。恰恰勇哥以上都比较熟悉。最早的程序员们,像386计算机这种pc的时代,为了让游戏速度更快,发明右移运算代替乘法的窍门,那时候勇哥还比较崇拜他们呢。换成在PLC里面,位操作似乎无所不在,全部指令的命令字都是以位来进行控制的。欧姆龙的输入输出IO通道都是按位操作的。WSFT 字移位由实验可以看到,D0开始...
2019-01-07 20:43:31
16个变址寄存器(IR0--IR15)用于间接寻址,每个变址寄存器存储一个单独的PLC存储地址,该地址是在I/O存储区中一个字的绝对地址。用MOVR指令将一个常规数据区地址 16个变址寄存器(IR0--IR15)用于间接寻址,每个变址寄存器存储一个单独的PLC存储地址,该地址是在I/O存储区中一个字的绝对地址。用MOVR指令将一个常规数据区地址转换成它的PLC存储地址,并将该...
2019-01-07 15:11:38
PID英文全称为Proportion Integration Differentiation,PID控制又称比例积分微分控制,是一种闭环控制。下面以如图7-13所示的恒压供水系统来说明PID控制原理。 图7-13 恒压供水的PID控制 电动机驱动水泵将水抽入水池,水池中的水除了经出水口提供用水外,还经阀门送到压力传感器,传感器将水压大小转换成相应的电信号Xf,Xf反馈到比较...
2019-01-07 14:49:09
什么是块程序能够在用户程序全体(全任务共通)中,最大可以创建128 个被称之为「块程序」的区域。块程序区域只根据1 个输入条件(功率通量)进行起动。起动后,BPRG~BEND 为止的指令被无条件执行。(除BPRG 指令之外,块程序区域内的指令的执行与输入条件(功率通量)无关)。因此,能够将由相同的输入条件ON 所进行的动作指令归并在该块程序中。将全体作为1 个块,用阶梯程序对该块进行起动。其中的指...
2019-01-07 10:36:50
勇哥是计算机专业毕业的,对于计算机的中断太熟悉不过了。所以对于中断是干什么的,怎么工作的,这里就不在赘述了。对于plc这种讲究实时响应的设备上来说,中断由于优先级别高,我相信意义是很大的。但是勇哥对于plc上的中断究竟能干些什么,由于初学plc,所以没有对应的项目经验,只能是先了解为主,以后再来补全。CP1H的中断功能的种类:●输入中断(直接模式) CPU 单元的内置输入发生OFF→ON 的...
2019-01-06 23:08:00
如果只是JOG+,JOG-,请参考程序第0,3步的演示。第0步往正方向运动,第3步往负方向运动。如果w0.01或者w0.02断开,则调用第6步的INI指令停止轴运动。第9步调用指令ORG回原点。第10步用来中止回原点动作。回原点的方向、速度、回原点的方式都是通过“设置”面板来设定的。第19,20步发固定脉冲走距离,CW是正方向转动,CCW为负方向转动。第13步为走固定脉冲的指令提供参数设定。本例源...
2019-01-06 21:11:18
结构化语言ST是作用于功能块编程中。这门语言对于梯形图中不善于处理的数值运算等逻辑算法,采用类似于高级语言的语法,使其变得简单。下面先从功能块的相关知识说起:CP1H的功能块规格:功能块定义数: 128实例数:256实例嵌套级数:cx-programmer6.0及以后,支持8级嵌套IO变量数:最多64个变量变量类型:注意:TIMER和COUNTER数据类型不能用于结构化文本功能块。在内部变量中,其...
2019-01-06 09:22:39
MOV$ 字符串传关指令这个指令只需要指定源字、第一个目标字勇哥很奇怪它怎么知道我传送多少个字符串?经过实验,我发现它是由源字开始,一直传送到0结束的字符串。也就是0做为要传送字符串的结束符。下面我截了内存区的图像,各位一看便知。LEFT$ 从左边取子字符串这个比较简单,看内存区截图。还有一个指令是取右边的子字符串,RGHT$这个名字勇哥忍不住要吐槽一下,实在是不好记,就不能叫RIGHT$? 真...
2019-01-05 22:12:51
在欧姆龙中,可以通过SSET(设置栈大小),PUSH(向栈中压入数据)以及FIFO(以队列方式读取数据)来实现这一过程。首先,通过SSET指令来设置栈大小,欧姆龙的队列需要固定4CH的空间存储栈管理信息,且因为FIFO会保留最后一个数据,为了确保你的程序可以结束掉,所以还需要多申请一个CH的空间用于存放工艺步骤结束标志。因为演示程序使用的是3个通道,那么这里的栈空间申请了8个通道。勇哥来介绍一下演...