plc通讯原理和程序设计 通讯程序设计在自动化系统的应用越来越广泛,例如plc    与操作界面的数据交换,通过通讯对变频器的控制,plc的连网等等。 要想实现plc的通讯编程,首先所选的plc必须有强大的通讯能力,就是说plc的操作系统能够支持多种通讯格式,通常一种品牌的plc如果能够提供给用户更多的编程自由度,那么这种品牌的技术开发能力就越强大,大多数品牌只能提供固定格式的通讯格式或协议,这就大大局限了plc与其他智能设备的数据交换。 我们的plc产品具有RS232和光电隔离的RS485两个自由通讯口,两个通讯口可以同时收发数据,几乎可以适应所有通讯格式,可以提供CRC和BCC等多种校验方式。 以一台PLC通过485通讯控制多个某品牌的变频器为例: 如果该变频器的波特率是9600b/s,8个数据位,奇校验,1个停止位。那么首先必须在plc的嵌入C窗口的初始化代码区编程一个通讯口设置语句:Set485Port(9600,o,8,1);仅仅一个语句就完成了对485通讯口的编程。 由于485通讯必须设定主从关系,这里是plc控制多台变频器,所以plc必须设置为主,因此还需在初始化代码区增加一个地址和主从设定语句:SetAddress(1,MASTER);事实上,对于主控制器来说,地址已经失去意义。 通讯口已经设置完毕,下面就是如何根据要求将数据发送给变频器。例如一组8字节控制数据如下所示: 01h ---->变频器编号 03h ---->命令 21h ---->两字节参数地址 02h 00h ---->两字节参数 02h CRC --->两字节CRC校验马 CRC PLC程序: Set485TBAddPointer(0); AddNumberTo485TB(0x1); AddNumberTo485TB(0x3); AddNumberTo485TB(0x21); AddNumberTo485TB(0x2); AddNumberTo485TB(0x0); AddNumberTo485TB(0x2); AddCRCTo485TB(); Start485Transmit(); 另外公司的《通讯编程》资料pdf电子文当以通俗易懂的生活事例对plc的通讯原理进行了讲解,如果有需要的朋友可以回复索取。
kong/webpage/forum/201006/2010060521213800001-1.shtml
PLC编程算法(1)
PLC中无非就是三大量:开关量、模拟量、脉冲量。只在搞清楚三者之间的关系,你就能熟练的掌握PLC了。
1、 开关量也称逻辑量,指仅有两个取值,0或1、ON或OFF。它是最常用的控制,对它进行控制是PLC的优势,也是PLC最基本的应用。
关量控制的目的是,根据开关量的当前输入组合与历史的输入顺序,使PLC产生相应的开关量输出,以使系统能按一定的顺序工作。所以,有时也称其为顺序控制。
而顺序控制又分为手动、半自动或自动。而采用的控制原则有分散、集中与混合控制三种。
这是用OMRON的开关量编写的一个“单按钮启停”程序。
2、 模拟量是指一些连续变化的物理量,如电压、电流、压力、速度、流量等。
PLC是由继电控制引入微处理技术后发展而来的,可方便及可靠地用于开关量控制。由于模拟量可转换成数字量,数字量只是多位的开关量,故经转换后的模拟量,PLC也完全可以可靠的进行处理控制。
由于连续的生产过程常有模拟量,所以模拟量控制有时也称过程控制。
模拟量多是非电量,而PLC只能处理数字量、电量。所有要实现它们之间的转换要有传感器,把模拟量转换成数电量。如果这一电量不是标准的,还要经过变送器,把非标准的电量变成标准的电信号,如4—20mA、1—5V、0—10V等等。
同时还要有模拟量输入单元(A/D),把这些标准的电信号变换成数字信号;模拟量输出单元(D/A),以把PLC处理后的数字量变换成模拟量——标准的电信号。
所以标准电信号、数字量之间的转换就要用到各种运算。这就需要搞清楚模拟量单元的分辨率以及标准的电信号。例如:
PLC模拟单元的分辨率是1/32767,对应的标准电量是0—10V,所要检测的是温度值0—100℃。那么0—32767对应0—100℃的温度值。然后计算出1℃所对应的数字量是327.67。如果想把温度值精确到0.1℃,把327.67/10即可。
模拟量控制包括:反馈控制、前馈控制、比例控制、模糊控制等。这些都是PLC内部数字量的计算过程。
3、 脉冲量是其取值总是不断的在0(低电平)和1(高电平)之间交替变化的数字量。每秒钟脉冲交替
变化的次数称为频率。
PLC脉冲量的控制目的主要是位置控制、运动控制、轨迹控制等。例如:脉冲数在角度控制中的应用。步进电机驱动器的细分是每圈10000,要求步进电机旋转90度。那么所要动作的脉冲数值=10000/(360/90)=2500。
PLC编程算法(2)——模拟量的计算
1、 -10—10V。-10V—10V的电压时,在6000分辨率时被转换为F448—0BB8Hex(-3000—3000);12000分辨率时被转换为E890—1770Hex(-6000—6000)。
2、 0—10V。0—10V的电压时,在12000分辨率时被转换为0—1770Hex(0—6000);12000分辨率时被转换为0—2EE0Hex(0—12000)。
3、 0—20mA。0—20mA的电流时,在6000分辨率时被转换为0—1770Hex(0—6000);12000分辨率时被转换为0—2EE0Hex(0—12000)。
4、 4—20mA。4—20mA的电流时,在6000分辨率时被转换为0—1770Hex(0—6000);12000分辨率时被转换为0—2EE0Hex(0—12000)。
以上仅做简单的介绍,不同的PLC有不同的分辨率,并且您所测量物理量实现的量程不一样。计算结果可能有一定的差异。
注:模拟输入的配线的要求
1、使用屏蔽双绞线,但不连接屏蔽层。
plc模拟量怎么编程
2、当一个输入不使用的时候,将V IN 和COM端子短接。
3、模拟信号线与电源线隔离 (AC 电源线,高压线等)。
4、当电源线上有干扰时,在输入部
分和电源单元之间安装一个虑波器。
5、确认正确的接线后,首先给CPU单元上电,然后再给负载上电。
6、断电时先切断负载的电源,然后再切断CPU的电源。
PLC编程算法(3)——脉冲量的计算
脉冲量的控制多用于步进电机、伺服电机的角度控制、距离控制、位置控制等。以下是以步进电机为例来说明各控制方式。
1、 步进电机的角度控制。首先要明确步进电机的细分数,然后确定步进电机转一圈所需要的总脉冲数。计算“角度百分比=设定角度/360°(即一圈)”“角度动作脉冲数=一圈总脉冲数*角度百分比。”
公式为:
角度动作脉冲数=一圈总脉冲数*(设定角度/360°)。
2、 步进电机的距离控制。首先明确步进电机转一圈所需要的总脉冲数。然后确定步进电机滚轮直径,计算滚轮周长。计算每一脉冲运行距离。最后计算设定距离所要运行的脉冲数。
公式为:
设定距离脉冲数=设定距离/[(滚轮直径*3.14)/一圈总脉冲数]
3、 步进电机的位置控制就是角度控制与距离控制的综合。
以上只是简单的分析步进电机的控制方式,可能与实际有出入,仅供各位同仁参考。
伺服电机的动作与步进电机的一样,但要考虑伺服电机的内部电子齿轮比与伺服电机的减速比。
有些事情说起来比较简单,但实际应用就有难度了。请大家在实际的工作中领悟其中的道理
组态王学习问题,望高手指点
悬赏分:30 - 解决时间:2010-5-2 23:18
刚刚学组态王,不知道要学些什么,指点下应该重点学哪些东西,想要点学习参考跟一些练习,哦还有语言命令里有好多函数要怎么解决消灭他们,每个都要了解清楚吗?有没有很常用的一些列一下。问题有点多希望各路高手,八方大侠指点小弟,小弟在这先谢过了。。。
提问者: ren881215 - 五级最佳答案你好,我也是刚接触组态王并完成了基于组态王的毕业设计。
我学习用的书是 北京亚控科技发展有限公司 出版的 组态王KINGVIEW 65A培训教程,上面有个反映车间的实例,一步步教你各种画面,很适合初学者。其实组态王就是各种画面的建立,主画面,报警,曲线,报表等,还有就是数据词典定义变量,然后把各个变量和期间连接起来。
不知道你的组态王有没有手册,所有的命令都了解一下是干什么的就行了,没必要都仔细学,用的时候在电子手册里查下说明就可以了,命令语言其实就是个C语言的子集,和C语言一样编辑就可以了,如果对C语言不是很了解建议简单学学。有什么问题可以联系我,everlasting_1986@qq