产品描述
3VA2340 5KQ32-0AA0
PLC程序的调试可以分为模拟调试和现场调试两个调试过程,在此之前首先对PLC外部接线作仔细检查,这一个环节很重要。外部接线一定要准确无误。也可以用事先编写好的试验程序对外部接线做扫描通电检查来查找接线故障。不过,为了安全考虑,较好将主电路断开。当确认接线无误后再连接主电路,将模拟调试好的程序送入用户存储器进行调试,直到各部分的功能都正常,并能协调一致地完成整体的控制功能为止。
1.程序的模拟调试
将设计好的程序写入PLC后,首先逐条仔细检查,并改正写入时出现的错误。用户程序一般先在实验室模拟调试,实际的输入信号可以用钮子开关和按钮来模拟,各输出量的通/断状态用PLC上有关的发光二极管来显示,一般不用接PLC实际的负载(如接触器、电磁阀等)。可以根据功能表图,在适当的时候用开关或按钮来模拟实际的反馈信号,如限位开关触点的接通和断开。对于顺序控制程序,调试程序的主要任务是检查程序的运行是否符合功能表图的规定,即在某一转换条件实现时,是否发生步的活动状态的正确变化,即该转换所有的前级步是否变为不活动步,所有的后续步是否变为活动步,以及各步被驱动的负载是否发生相应的变化。
在调试时应充分考虑各种可能的情况,对系统各种不同的工作方式、有选择序列的功能表图中的每一条支路、各种可能的进展路线,都应逐一检查,不能遗漏。发现问题后应及时修改梯形图和PLC中的程序,直到在各种可能的情况下输入量与输出量之间的关系完全符合要求。
如果程序中某些定时器或计数器的设定值过大,为了缩短调试时间,可以在调试时将它们减小,模拟调试结束后再写入它们的实际设定值。
在设计和模拟调试程序的同时,可以设计、制作控制台或控制柜,PLC之外的其他硬件的安装、接线工作也可以同时进行。
2.程序的现场调试
完成上述的工作后,将PLC安装在控制现场进行联机总调试,在调试过程中将暴露出系统中可能存在的传感器、执行器和硬接线等方面的问题,以及PLC的外部接线图和梯形图程序设计中的问题,应对出现的问题及时加以解决。如果调试达不到指标要求,则对相应硬件和软件部分作适当调整,通常只需要修改程序就可能达到调整的目的。全部调试通过后,经过一段时间的考验,系统就可以投入实际的运行了。
程序如下:但有错误!哪位大侠帮我改改!!
‘创建 EXCEL对象
Set objExcel = Createbbbbbb("Excel.Application")
‘ 设置EXCEL的属性
With objExcel
‘显示EXCEL
.Application.Visible = True
‘创建新的工作簿
.Application.Workbooks.Add ‘
一个**个工作表
.Worksheets("Sheet1").Activate End With(这句话有错误,需要定义!!)
下面是写入历史数据!也是我想问的地方,大侠们帮我改改!!!!
‘创建ADO的CONNECTION对象以便建立与数据库的连接
Set cn1 = Createbbbbbb("adodb.connection")
‘打开连接DBQ的属性按历史数据库实际路径填写,数据库的驱动程序 ‘使用dbase IV驱动 cn1.open "driver={microsoft dbase driver_ (*.dbf)};DBQ=E:\rs_test\_ DLGLOG\RSVIEW"(××××××××这就话有错误!!我不会找路径!应该怎么写路径啊!总说找不到)
‘创建游标
Set rs = Createbbbbbb("adodb.recordset")
‘设置SQL语言的查询命令,在这里可以按照不同的需要编写相应的SQL语句
‘ 来实现我们的要求
SQL = "select * from 040504AW"
‘打开游标 rs.open SQL, cn1
‘将ANALOG\FT2的数据写入EXCEL的**列中
i=1
Do While Not rs.EOF
objExcel.sheets(1).cells(i, 1) = rs("ANALOG\FT2")
rs.movenext
i = i + 1
Loop
程序就是这样!各位帮我试试!成功了把该过的代码发一下!!小弟不胜感谢!!! <bbbbbb lange=javabbbbbb> <-- leadcode('Content515399'); //--> </bbbbbb>
不用那么麻烦,AB网站上有在EXCEL中写的宏程序进行历史记录的,搬过来用。
今天我出去了,刚回来。想着对你的承诺,故给你回复。是不是要这样的结果
由于时间紧,故程序算法不是太紧凑,但完全可以实现你所想要的结果。给你如下主要程序参考:
With objExcel
.Rows(1).Font.Bold = True
.Cells(1, 1).Value = "时间"
.Cells(1, 2).Value = "Main\pisjh"
.Cells(1, 3).Value = "Main\pislh"
End With
nRow = 2
mrow = 2
Do While Not rsResults.EOF
If Mid(Trim(rsResults.Fields(0).Value), 1, 10) = gTagDb("rq").Value Then
If rsResults.Fields(2).Value = 0 Then
objExcel.Cells(nRow, 2).Value = Trim(rsResults.Fields(3).Value)
objExcel.Cells(nRow, 1).Value = Trim(rsResults.Fields(0).Value)
nRow = nRow + 1
End If
If rsResults.Fields(2).Value = 1 Then
objExcel.Cells(mrow, 3).Value = Trim(rsResults.Fields(3).Value)
objExcel.Cells(mrow, 1).Value = Trim(rsResults.Fields(0).Value)
mrow = mrow + 1
End If
rsResults.MoveNext
End If
Loop
End If
有不清楚,可以回帖。 <bbbbbb lange=javabbbbbb> <-- leadcode('Content521063'); //--> </bbbbbb>
能给AB网站这个例子的链接吗? <bbbbbb lange=javabbbbbb> <-- leadcode('Content521078'); //--> </bbbbbb>
在AB的网站搜了半天,终于找到了2楼所说的例程./support/download/detail.cfm?ID=95 <bbbbbb lange=javabbbbbb> <-- leadcode('Content521454'); //--> </bbbbbb>
本篇文章来源于 中国PLC网| 原文链接:///jc/showbbbb?id=4566
产品推荐