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个通道。勇哥来介绍一下演...
2018-12-30 22:22:56
欧姆龙PLC的功能块勇哥暂时理解为是一种拥有输入输出参数的自定义的指令。它的好处是实现功能复用,从梯形图上看来很简洁,可以减少plc内存消耗。如果仅仅是实现功能的利用,显然功能块无法和子程序区分开来,功能块拥有自己特殊的定义与调用方式。功能块有两种方法,一是梯形图形式,二是ST文本形式(结构文本),两者区别只是编码方式不同。(一) 梯形图形式的功能块首先创建一个梯形图功能块然后进入功能块的参数与梯...
2018-12-30 16:35:03
(七)时序输出指令keep,set指令都属于时序输出指令,勇哥感觉叫时序输出不太恰当,但是因为欧姆龙的手册上是这么叫的,我也只能这样叫了,还是要忍不住要吐槽一下。KEEP, SET都是置位并且保持状态用的,它们的区别总结一下:keep與set,reset基本上是相同,keep兩個輸入set與reset必須與指令在相同位置.set與reset可以分開不同位置,如set在IL/ILC,JUMP/JME...
2018-12-29 16:28:22
最近在处理一些本地数据库的时候发现,原来使用的Microsoft.Jet.OLEDB.4.0,的方法并不能连接最新的Access 存储文件,而且Microsoft.Jet.OLEDB.4.0不能使用x64的方式生成,而且使用这个数据库引擎效率也是比较低的。这让我比较苦恼。现在发现了另一个新的引擎并且支持x64。Microsoft.ACE.OLEDB.15.0 ,现在给大家展示如何使用。 并且贴出下...
2018-12-28 21:32:23
命名空间:netMarketing.automation.communication功能:RS232串口读写功能详细说明:netMarketing类库中许多类都有后缀helper,通常这些类都是些使用频度较高的类,serialHelper类就是一个高频类,你可以在编写诸如plc内存读写模块时继承本类就可以直接使用串口功能。在工业自动化行业里,串口是使用频度比较高的通讯口,它就像电脑的键盘,很古老却...
2018-12-28 13:33:36
(一)vspd虚拟串口有了这个虚拟串口,可以方便的在本机开发串口通讯程序。并且,在实际运用中,经常会有些一些现有的机器上的软件,会通过串口向外发送数据。我们自己开发的软件就可以利用虚拟串口和它对接。虚拟串口工具生成的是一对可以交叉通讯的端口,如下图勇哥创建了com5,com6,如果你的程序利用com5发送数据,那么另一边的调试助手监控com6就可以收到你发过来的数据。(二)文件比较Beyond C...
2018-12-27 22:13:03
一、 本例使用串口1作为发送数据介质,只写发送示例,接收同理,首先设置串口1通讯参数,串口扩展板扩展板插在slot 1,设置参数如下: 通讯参数:波特率9600,数据位8,停止位1,校验位无,RS232C模式,通讯延迟1秒,其余默认。二、 电脑串口与PLC串口的连接方式,PLC采用USB转串口电缆,接线图如下:注意:不能直接将PC串口线插到CPU...
2018-12-27 08:28:42
忍不住要吐槽一下,这个工厂没事干加个什么域,好好的程序,加了域就出现异常,给勇哥都整些问题出来头疼。下图是这个问题的软件报错截图。由于这个**bzclass.dll是客户的一个监控系统提供的,并非是我自己软件的东西,这让勇哥心里稍稍有一点快感!看来是客户的几个部门之间没有沟通好,自己开发东西加域后能不能用也没测试过,但这个问题还是得解决,客户即使有错,也是供应商的错。2019/1/12 勇哥注:后...
2018-12-26 15:39:06
命名空间:netMarketing.Net.NetSocket.SocketClient功能:同步读写Tcp客户端功能详细说明:这个类名字中有一个socket,指的是它功能的实现是采用Socket套接字方式实现的。这个套接字运行于客户端,所以这个类叫SocketClient。那么Socket连接跟Tcp连接有什么不同呢?创建Socket连接时,可以指定使用的传输层协议,Socket可以支持不同的传...
2018-12-26 14:43:59
命名空间:sharClass.Serialize功能:对象的序列化与反序列化。功能详细说明:序列化是将对象状态转换为可保持或传输的格式的过程。与序列化相对的是反序列化,它将流转换为对象。这两个过程结合起来,可以轻松地存储和传输数据。.NET Framework 提供两种序列化技术:二进制序列化保持类型保真度,这对于在应用程序的不同调用之间保留对象的状态很有用。例如,通过将对象序列化到剪贴板,可在不...
2018-12-26 13:54:15
把努力转化成能力的能力。在现实生活中,有很多人明明很努力,但是却经常难以取得进步,也许这个视频能帮到你(来自TED演讲):为什么明明很努力却看不见进步?这个问题上,作者认为不再进步的原因,是我们一直在重复已经掌握的内容,却没有将更多时间花在学习区。那么精力去了哪里呢?作者把我们的投入分为两个区:学习区和表现区。在学习区,我们勇敢地闯入不熟悉的领域,从错误中吸取教训,获得成长;在表现区,我们做最熟悉...
2018-12-25 21:03:11
(四) 增量与减量++指令,BIN增量加一指令, 对应的还--指令。这个指令类似于C语言中的++和--,勇哥看上去亲切无比。它还有加L的指令,也就是倍长指令,可以操作32位数。下面的例子可以很清楚看出倍长指令的区别。 如果你对一个常数100自加,会发生有趣的现象。你的100.0到100.7的输出IO的灯会狂闪,勇哥实验时步进电机接到了100.0,看到居然电机在运动!2018.12.26注:勇哥后来...
2018-12-24 19:55:36
(2)计数器CNT为减法计数器,如下图中,1.09按下则计数器初始值复位为10,按下1.07,在其上升沿时执行减1,当减为0时计数器状态变onCNT为BCD方式,CNTX为BIN方式,它们功能是一样的,区别是BIN方式可以记数的上限要大一些。·BCD 方式时0~9999 次·BIN 方式时0~65535 次CNTR可逆计数器,如下图中,1.07按下则计数器加1,当加到10时,再按一次加到0,这时候...