如何使用Excel通过OPC访问WinCC的实时数据 wincc通过OPC获取的数据显示为零?

作者&投稿:弋的 (若有异议请与网页底部的电邮联系)
一、让不同类型数据用不同颜色显示
  在工资表中,如果想让大于等于2000元的工资总额以“红色”显示,大于等于1500元的工资总额以“蓝色”显示,低于1000元的工资总额以“棕色”显示,其它以“黑色”显示,我们可以这样设置。
  1.打开“工资表”工作簿,选中“工资总额”所在列,执行“格式→条件格式”命令,打开“条件格式”对话框。单击第二个方框右侧的下拉按钮,选中“大于或等于”选项,在后面的方框中输入数值“2000”。单击“格式”按钮,打开“单元格格式”对话框,将“字体”的“颜色”设置为“红色”。
  2.按“添加”按钮,并仿照上面的操作设置好其它条件(大于等于1500,字体设置为“蓝色”;小于1000,字体设置为“棕色”)。
  3.设置完成后,按下“确定”按钮。
  看看工资表吧,工资总额的数据是不是按你的要求以不同颜色显示出来了。

二、建立分类下拉列表填充项
  我们常常要将企业的名称输入到表格中,为了保持名称的一致性,利用“数据有效性”功能建了一个分类下拉列表填充项。
  1.在Sheet2中,将企业名称按类别(如“工业企业”、“商业企业”、“个体企业”等)分别输入不同列中,建立一个企业名称数据库。
  2.选中A列(“工业企业”名称所在列),在“名称”栏内,输入“工业企业”字符后,按“回车”键进行确认。
  仿照上面的操作,将B、C……列分别命名为“商业企业”、“个体企业”……
  3.切换到Sheet1中,选中需要输入“企业类别”的列(如C列),执行“数据→有效性”命令,打开“数据有效性”对话框。在“设置”标签中,单击“允许”右侧的下拉按钮,选中“序列”选项,在下面的“来源”方框中,输入“工业企业”,“商业企业”,“个体企业”……序列(各元素之间用英文逗号隔开),确定退出。
  再选中需要输入企业名称的列(如D列),再打开“数据有效性”对话框,选中“序列”选项后,在“来源”方框中输入公式:=INDIRECT(C1),确定退出。
  4.选中C列任意单元格(如C4),单击右侧下拉按钮,选择相应的“企业类别”填入单元格中。然后选中该单元格对应的D列单元格(如D4),单击下拉按钮,即可从相应类别的企业名称列表中选择需要的企业名称填入该单元格中。
  提示:在以后打印报表时,如果不需要打印“企业类别”列,可以选中该列,右击鼠标,选“隐藏”选项,将该列隐藏起来即可。
  三、建立“常用文档”新菜单
  在菜单栏上新建一个“常用文档”菜单,将常用的工作簿文档添加到其中,方便随时调用。
  1.在工具栏空白处右击鼠标,选“自定义”选项,打开“自定义”对话框。在“命令”标签中,选中“类别”下的“新菜单”项,再将“命令”下面的“新菜单”拖到菜单栏。
  按“更改所选内容”按钮,在弹出菜单的“命名”框中输入一个名称(如“常用文档”)。
  2.再在“类别”下面任选一项(如“插入”选项),在右边“命令”下面任选一项(如“超链接”选项),将它拖到新菜单(常用文档)中,并仿照上面的操作对它进行命名(如“工资表”等),建立第一个工作簿文档列表名称。
  重复上面的操作,多添加几个文档列表名称。
  3.选中“常用文档”菜单中某个菜单项(如“工资表”等),右击鼠标,在弹出的快捷菜单中,选“分配超链接→打开”选项,打开“分配超链接”对话框。通过按“查找范围”右侧的下拉按钮,定位到相应的工作簿(如“工资.xls”等)文件夹,并选中该工作簿文档。
  重复上面的操作,将菜单项和与它对应的工作簿文档超链接起来。
  4.以后需要打开“常用文档”菜单中的某个工作簿文档时,只要展开“常用文档”菜单,单击其中的相应选项即可。
  提示:尽管我们将“超链接”选项拖到了“常用文档”菜单中,但并不影响“插入”菜单中“超链接”菜单项和“常用”工具栏上的“插入超链接”按钮的功能。
  四、制作“专业符号”工具栏
  在编辑专业表格时,常常需要输入一些特殊的专业符号,为了方便输入,我们可以制作一个属于自己的“专业符号”工具栏。
  1.执行“工具→宏→录制新宏”命令,打开“录制新宏”对话框,输入宏名?如“fuhao1”?并将宏保存在“个人宏工作簿”中,然后“确定”开始录制。选中“录制宏”工具栏上的“相对引用”按钮,然后将需要的特殊符号输入到某个单元格中,再单击“录制宏”工具栏上的“停止”按钮,完成宏的录制。
  仿照上面的操作,一一录制好其它特殊符号的输入“宏”。
  2.打开“自定义”对话框,在“工具栏”标签中,单击“新建”按钮,弹出“新建工具栏”对话框,输入名称——“专业符号”,确定后,即在工作区中出现一个工具条。
  切换到“命令”标签中,选中“类别”下面的“宏”,将“命令”下面的“自定义按钮”项拖到“专业符号”栏上(有多少个特殊符号就拖多少个按钮)。
  3.选中其中一个“自定义按钮”,仿照第2个秘技的第1点对它们进行命名。
  4.右击某个命名后的按钮,在随后弹出的快捷菜单中,选“指定宏”选项,打开“指定宏”对话框,选中相应的宏(如fuhao1等),确定退出。
  重复此步操作,将按钮与相应的宏链接起来。
  5.关闭“自定义”对话框,以后可以像使用普通工具栏一样,使用“专业符号”工具栏,向单元格中快速输入专业符号了。
  五、用“视面管理器”保存多个打印页面
  有的工作表,经常需要打印其中不同的区域,用“视面管理器”吧。
  1.打开需要打印的工作表,用鼠标在不需要打印的行(或列)标上拖拉,选中它们再右击鼠标,在随后出现的快捷菜单中,选“隐藏”选项,将不需要打印的行(或列)隐藏起来。
  2.执行“视图→视面管理器”命令,打开“视面管理器”对话框,单击“添加”按钮,弹出“添加视面”对话框,输入一个名称(如“上报表”)后,单击“确定”按钮。
  3.将隐藏的行(或列)显示出来,并重复上述操作,“添加”好其它的打印视面。
  4.以后需要打印某种表格时,打开“视面管理器”,选中需要打印的表格名称,单击“显示”按钮,工作表即刻按事先设定好的界面显示出来,简单设置、排版一下,按下工具栏上的“打印”按钮,一切就OK了。
  六、让数据按需排序
  如果你要将员工按其所在的部门进行排序,这些部门名称既的有关信息不是按拼音顺序,也不是按笔画顺序,怎么办?可采用自定义序列来排序。
  1.执行“格式→选项”命令,打开“选项”对话框,进入“自定义序列”标签中,在“输入序列”下面的方框中输入部门排序的序列(如“机关,车队,一车间,二车间,三车间”等),单击“添加”和“确定”按钮退出。
  2.选中“部门”列中任意一个单元格,执行“数据→排序”命令,打开“排序”对话框,单击“选项”按钮,弹出“排序选项”对话框,按其中的下拉按钮,选中刚才自定义的序列,按两次“确定”按钮返回,所有数据就按要求进行了排序。
  
  七、把数据彻底隐藏起来
  工作表部分单元格中的内容不想让浏览者查阅,只好将它隐藏起来了。
  1.选中需要隐藏内容的单元格(区域),执行“格式→单元格”命令,打开“单元格格式”对话框,在“数字”标签的“分类”下面选中“自定义”选项,然后在右边“类型”下面的方框中输入“;;;”(三个英文状态下的分号)。
  2.再切换到“保护”标签下,选中其中的“隐藏”选项,按“确定”按钮退出。
  3.执行“工具→保护→保护工作表”命令,打开“保护工作表”对话框,设置好密码后,“确定”返回。
  经过这样的设置以后,上述单元格中的内容不再显示出来,就是使用Excel的透明功能也不能让其现形。
  提示:在“保护”标签下,请不要清除“锁定”前面复选框中的“∨”号,这样可以防止别人删除你隐藏起来的数据。
  八、让中、英文输入法智能化地出现
  在编辑表格时,有的单元格中要输入英文,有的单元格中要输入中文,反复切换输入法实在不方便,何不设置一下,让输入法智能化地调整呢?
  选中需要输入中文的单元格区域,执行“数据→有效性”命令,打开“数据有效性”对话框,切换到“输入法模式”标签下,按“模式”右侧的下拉按钮,选中“打开”选项后,“确定”退出。
  以后当选中需要输入中文的单元格区域中任意一个单元格时,中文输入法(输入法列表中的第1个中文输入法)自动打开,当选中其它单元格时,中文输入法自动关闭。
  九、让“自动更正”输入统一的文本
  你是不是经常为输入某些固定的文本,如《电脑报》而烦恼呢?那就往下看吧。
  1.执行“工具→自动更正”命令,打开“自动更正”对话框。
  2.在“替换”下面的方框中输入“pcw”(也可以是其他字符,“pcw”用小写),在“替换为”下面的方框中输入“《电脑报》”,再单击“添加”和“确定”按钮。
  3.以后如果需要输入上述文本时,只要输入“pcw”字符?此时可以不考虑“pcw”的大小写?,然后确认一下就成了。
  十、在Excel中自定义函数
  Excel函数虽然丰富,但并不能满足我们的所有需要。我们可以自定义一个函数,来完成一些特定的运算。下面,我们就来自定义一个计算梯形面积的函数:
  1.执行“工具→宏→Visual Basic编辑器”菜单命令(或按“Alt+F11”快捷键),打开Visual Basic编辑窗口。
  2.在窗口中,执行“插入→模块”菜单命令,插入一个新的模块——模块1。
  3.在右边的“代码窗口”中输入以下代码:
  Function V(a,b,h)V = h*(a+b)/2End Function
  4.关闭窗口,自定义函数完成。
  以后可以像使用内置函数一样使用自定义函数。
  提示:用上面方法自定义的函数通常只能在相应的工作簿中使用。
  十一、表头下面衬张图片
  为工作表添加的背景,是衬在整个工作表下面的,能不能只衬在表头下面呢?
  1.执行“格式→工作表→背景”命令,打开“工作表背景”对话框,选中需要作为背景的图片后,按下“插入”按钮,将图片衬于整个工作表下面。
  2.在按住Ctrl键的同时,用鼠标在不需要衬图片的单元格(区域)中拖拉,同时选中这些单元格(区域)。
  3.按“格式”工具栏上的“填充颜色”右侧的下拉按钮,在随后出现的“调色板”中,选中“白色”。经过这样的设置以后,留下的单元格下面衬上了图片,而上述选中的单元格(区域)下面就没有衬图片了(其实,是图片被“白色”遮盖了)。
  提示?衬在单元格下面的图片是不支持打印的。
  十二、用连字符“&”来合并文本
  如果我们想将多列的内容合并到一列中,不需要利用函数,一个小小的连字符“&”就能将它搞定(此处假定将B、C、D列合并到一列中)。
  1.在D列后面插入两个空列(E、F列),然后在D1单元格中输入公式:=B1&C1&D1。
  2.再次选中D1单元格,用“填充柄”将上述公式复制到D列下面的单元格中,B、C、D列的内容即被合并到E列对应的单元格中。
  3.选中E列,执行“复制”操作,然后选中F列,执行“编辑→选择性粘贴”命令,打开“选择性粘贴”对话框,选中其中的“数值”选项,按下“确定”按钮,E列的内容(不是公式)即被复制到F列中。
  4.将B、C、D、E列删除,完成合并工作。
  提示:完成第1、2步的操作,合并效果已经实现,但此时如果删除B、C、D列,公式会出现错误。故须进行第3步操作,将公式转换为不变的“值”。
  
  生成绩条
  常有朋友问“如何打印成绩条”这样的问题,有不少人采取录制宏或VBA的方法来实现,这对于初学者来说有一定难度。出于此种考虑,我在这里给出一种用函数实现的简便方法。
  此处假定学生成绩保存在Sheet1工作表的A1至G64单元格区域中,其中第1行为标题,第2行为学科名称。
  1.切换到Sheet2工作表中,选中A1单元格,输入公式:=IF(MOD(ROW(),3)=0,″″,IF(0MOD?ROW(),3(=1,sheet1!Aū,INDEX(sheet1!$A:$G,INT(((ROW()+4)/3)+1),COLUMN())))。
  2.再次选中A1单元格,用“填充柄”将上述公式复制到B1至G1单元格中;然后,再同时选中A1至G1单元格区域,用“填充柄”将上述公式复制到A2至G185单元格中。
  至此,成绩条基本成型,下面简单修饰一下。
  3.调整好行高和列宽后,同时选中A1至G2单元格区域(第1位学生的成绩条区域),按“格式”工具栏“边框”右侧的下拉按钮,在随后出现的边框列表中,选中“所有框线”选项,为选中的区域添加边框(如果不需要边框,可以不进行此步及下面的操作)。
  4.同时选中A1至G3单元格区域,点击“常用”工具栏上的“格式刷”按钮,然后按住鼠标左键,自A4拖拉至G186单元格区域,为所有的成绩条添加边框。
  按“打印”按钮,即可将成绩条打印出来。
  十四、Excel帮你选函数
  在用函数处理数据时,常常不知道使用什么函数比较合适。Excel的“搜索函数”功能可以帮你缩小范围,挑选出合适的函数。
  执行“插入→函数”命令,打开“插入函数”对话框,在“搜索函数”下面的方框中输入要求(如“计数”),然后单击“转到”按钮,系统即刻将与“计数”有关的函数挑选出来,并显示在“选择函数”下面的列表框中。再结合查看相关的帮助文件,即可快速确定所需要的函数。
  十五、同时查看不同工作表中多个单元格内的数据
  有时,我们编辑某个工作表(Sheet1)时,需要查看其它工作表中(Sheet2、Sheet3……)某个单元格的内容,可以利用Excel的“监视窗口”功能来实现。
  执行“视图→工具栏→监视窗口”命令,打开“监视窗口”,单击其中的“添加监视”按钮,展开“添加监视点”对话框,用鼠标选中需要查看的单元格后,再单击“添加”按钮。重复前述操作,添加其它“监视点”。
  以后,无论在哪个工作表中,只要打开“监视窗口”,即可查看所有被监视点单元格内的数据和相关信息。
  十六、为单元格快速画边框
  在Excel 2002以前的版本中,为单元格区域添加边框的操作比较麻烦,Excel 2002对此功能进行了全新的拓展。
  单击“格式”工具栏上“边框”右侧的下拉按钮,在随后弹出的下拉列表中,选“绘图边框”选项,或者执行“视图→工具栏→边框”命令,展开“边框”工具栏。
  单击工具栏最左侧的下拉按钮,选中一种边框样式,然后在需要添加边框的单元格区域中拖拉,即可为相应的单元格区域快速画上边框。
  提示:①如果画错了边框,没关系,选中工具栏上的“擦除边框”按钮,然后在错误的边框上拖拉一下,就可以清除掉错误的边框。②如果需要画出不同颜色的边框,可以先按工具栏右侧的“线条颜色”按钮,在随后弹出的调色板中选中需要的颜色后,再画边框即可。③这一功能还可以在单元格中画上对角的斜线。
  
  十七、控制特定单元格输入文本的长度
  你能想象当你在该输入四位数的单元格中却填入了一个两位数,或者在该输入文字的单元格中你却输入了数字的时候,Excel就能自动判断、即时分析并弹出警告,那该多好啊!要实现这一功能,对Excel来说,也并不难。
  例如我们将光标定位到一个登记“年份”的单元格中,为了输入的统一和计算的方便,我们希望“年份”都用一个四位数来表示。所以,我们可以单击“数据”菜单的“有效性”选项。在“设置”卡片“有效性条件”的“允许”下拉菜单中选择“文本长度”。然后在“数据”下拉菜单中选择“等于”,且“长度”为“4”。同时,我们再来到“出错警告”卡片中,将“输入无效数据时显示的出错警告”设为“停止”,并在“标题”和“错误信息”栏中分别填入“输入文本非法!”和“请输入四位数年份。”字样。
  很显然,当如果有人在该单元格中输入的不是一个四位数时,Excel就会弹出示的警告对话框,告诉你出错原因,并直到你输入了正确“样式”的数值后方可继续录入。神奇吧?其实,在Excel的“数据有效性”判断中,还有许多特殊类型的数据格式可选,比如“文本类型”啊,“序列大小”啊,“时间远近”啊,如你有兴趣,何不自作主张,自己设计一种检测标准,让你的Excel展示出与众不同的光彩呢。
  十八、成组填充多张表格的固定单元格
  我们知道每次打开Excel,软件总是默认打开多张工作表。由此就可看出Excel除了拥有强大的单张表格的处理能力,更适合在多张相互关联的表格中协调工作。要协调关联,当然首先就需要同步输入。因此,在很多情况下,都会需要同时在多张表格的相同单元格中输入同样的内容。
  那么如何对表格进行成组编辑呢?首先我们单击第一个工作表的标签名“Sheet1”,然后按住Shift键,单击最后一张表格的标签名“Sheet3”(如果我们想关联的表格不在一起,可以按住Ctrl键进行点选)。此时,我们看到Excel的标题栏上的名称出现了“工作组”字样,我们就可以进行对工作组的编辑工作了。在需要一次输入多张表格内容的单元格中随便写点什么,我们发现,“工作组”中所有表格的同一位置都显示出相应内容了。
  但是,仅仅同步输入是远远不够的。比如,我们需要将多张表格中相同位置的数据统一改变格式该怎么办呢?首先,我们得改变第一张表格的数据格式,再单击“编辑”菜单的“填充”选项,然后在其子菜单中选择“至同组工作表”。这时,Excel会弹出“填充成组工作表”的对话框,在这里我们选择“格式”一项,点“确定”后,同组中所有表格该位置的数据格式都改变了。
  十九、改变文本的大小写
  在Excel中,为表格处理和数据运算提供最强大支持的不是公式,也不是数据库,而是函数。不要以为Excel中的函数只是针对数字,其实只要是写进表格中的内容,Excel都有对它编辑的特殊函数。例如改变文本的大小写。
  在Excel 2002中,至少提供了三种有关文本大小写转换的函数。它们分别是:“=UPPER(源数据格)”,将文本全部转换为大写;“=LOWER(源数据格)”,将文本全部转换成小写;“=PROPER(源数据格)”,将文本转换成“适当”的大小写,如让每个单词的首字母为大写等。例如,我们在一张表格的A1单元格中输入小写的“excel”,然后在目标单元格中输入“=UPPER(A1)”,回车后得到的结果将会是“EXCEL”。同样,如果我们在A3单元格中输入“mr.weiwei”,然后我们在目标单元格中输入“=PROPER(A3)”,那么我们得到的结果就将是“Mr.Weiwei”了。
  二十、提取字符串中的特定字符
  除了直接输入外,从已存在的单元格内容中提取特定字符输入,绝对是一种省时又省事的方法,特别是对一些样式雷同的信息更是如此,比如员工名单、籍贯等信息。
  如果我们想快速从A4单元格中提取称谓的话,最好使用“=RIGHT(源数据格,提取的字符数)”函数,它表示“从A4单元格最右侧的字符开始提取2个字符”输入到此位置。当然,如果你想提取姓名的话,则要使用“=LEFT(源数据格,提取的字符数)”函数了。还有一种情况,我们不从左右两端开始,而是直接从数据中间提取几个字符。比如我们要想从A5单元格中提取“武汉”两个字时,就只须在目标单元格中输入“=MID(A5,4,2)”就可以了。意思是:在A5单元格中提取第4个字符后的两个字符,也就是第4和第5两个字。
  
二十一、把基数词转换成序数词  将英文的基数词转换成序数词是一个比较复杂的问题。因为它没有一个十分固定的模式:大多数的数字在变成序数词都是使用的“th”后缀,但大凡是以“1”、“2”、“3”结尾的数字却分别是以“st”、“nd”和“rd”结尾的。而且,“11”、“12”、“13”这3个数字又不一样,它们却仍然是以“th”结尾的。因此,实现起来似乎很复杂。其实,只要我们理清思路,找准函数,只须编写一个公式,就可轻松转换了。不信,请看:“=A2&IF(OR(VALUE(RIGHT(A2,2))={11,12,13}),″th″,IF(OR(VALUE(RIGHT(A2))={1,2,3,},CHOOSE(RIGHT(A2),″st″,″nd″,″rd″),″th″))”。该公式尽管一长串,不过含义却很明确:①如果数字是以“11”、“12”、“13”结尾的,则加上“th”后缀;②如果第1原则无效,则检查最后一个数字,以“1”结尾使用“st”、以“2”结尾使用“nd”、以“3”结尾使用“rd”;③如果第1、2原则都无效,那么就用“th”。因此,基数词和序数词的转换实现得如此轻松和快捷。
  二十二、用特殊符号补齐位数
  和财务打过交道的人都知道,在账面填充时有一种约定俗成的“安全填写法”,那就是将金额中的空位补齐,或者在款项数据的前面加上“$”之类的符号。其实,在Excel中也有类似的输入方法,那就是“REPT”函数。它的基本格式是“=REPT(“特殊符号”,填充位数)”。
  比如,我们要在中A2单元格里的数字结尾处用“#”号填充至16位,就只须将公式改为“=(A2&REPT(″#″,16-LEN(A2)))”即可;如果我们要将A3单元格中的数字从左侧用“#”号填充至16位,就要改为“=REPT(″#″,16-LEN(A3)))&A3”;另外,如果我们想用“#”号将A4中的数值从两侧填充,则需要改为“=REPT(″#″,8-LEN(A4)/2)&A4&REPT(″#″)8-LEN(A4)/2)”;如果你还嫌不够专业,要在A5单元格数字的顶头加上“$”符号的话,那就改为:“=(TEXT(A5,″$#,##0.00″(&REPT(″#″,16-LEN(TEXT(A5,″$#,##0.00″))))”,一定能满足你的要求。
  二十三、创建文本直方图
  除了重复输入之外,“REPT”函数另一项衍生应用就是可以直接在工作表中创建由纯文本组成的直方图。它的原理也很简单,就是利用特殊符号的智能重复,按照指定单元格中的计算结果表现出长短不一的比较效果。
  比如我们首先制作一张年度收支平衡表,然后将“E列”作为直方图中“预算内”月份的显示区,将“G列”则作为直方图中“超预算”的显示区。然后根据表中已有结果“D列”的数值,用“Wingdings”字体的“N”字符表现出来。具体步骤如下:
  在E3单元格中写入公式“=IF(D30,REPT(″n″,ROUND(D3*100,0)),″″)”,也拖动填充柄至G14。我们看到,一个没有动用Excel图表功能的纯文本直方图已展现眼前,方便直观,简单明了。
  二十四、计算单元格中的总字数
  有时候,我们可能对某个单元格中字符的数量感兴趣,需要计算单元格中的总字数。要解决这个问题,除了利用到“SUBSTITUTE”函数的虚拟计算外,还要动用“TRIM”函数来删除空格。比如现在A1单元格中输入有“how many words?”字样,那么我们就可以用如下的表达式来帮忙:
  “=IF(LEN(A1)=0,0,LEN(TRIM(A1))-LEN(SUBSTITUTE(TRIM(A1),″,″,″″))+1)”
  该式的含义是先用“SUBSTITUTE”函数创建一个新字符串,并且利用“TRIM”函数删除其中字符间的空格,然后计算此字符串和原字符串的数位差,从而得出“空格”的数量,最后将空格数+1,就得出单元格中字符的数量了。
  二十五、关于欧元的转换
  这是Excel 2002中的新工具。如果你在安装Excel 2002时选择的是默认方式,那么很可能不能在“工具”菜单中找到它。不过,我们可以先选择“工具”菜单中的“加载宏”,然后在弹出窗口中勾选“欧元工具”选项,“确定”后Excel 2002就会自行安装了。
  完成后我们再次打开“工具”菜单,单击“欧元转换”,一个独立的专门用于欧元和欧盟成员国货币转换的窗口就出现了。与Excel的其他函数窗口一样,我们可以通过鼠标设置货币转换的“源区域”和“目标区域”,然后再选择转换前后的不同币种即可。所示的就是“100欧元”分别转换成欧盟成员国其他货币的比价一览表。当然,为了使欧元的显示更显专业,我们还可以点击Excel工具栏上的“欧元”按钮,这样所有转换后的货币数值都是欧元的样式了。

如何使用Excel通过OPC访问WinCC的实时数据~

OPC(OLE for process control)作为标准软件接口,可以使各个生产商的设备和应用程序就能以统一的方式连接起来。WinCC 既可以用作 OPC 服务器提供数据,又可以作为 OPC 客户机访问其他OPC 服务器中的数据。WinCC集成的OPC服务器使得过程数据可由其它应用程序(OPC客户机)访问。在Excel中可以通过VBA脚本建立OPC 客户端,并通过OPC接口读取WinCC中的数据,并将修改的数据写入WinCC。
1 OPC规范及功能
OPC是一种一致的独立于制造商的软件接口。OPC 接口基于 Microsoft Windows 的 COM(组件对象模型)和 DCOM(分布式组件对象模型)技术。 另一方面,OPC XML 则基于 Internet 标准 XML、SOAP 和 HTTP。
> COM
COM 是位于同一计算机上且属于不同程序的对象之间进行通讯时采用的标准协议。服务端是提供服务的对象,比如提供数据。客户端是使用由服务端提供的服务的应用程序。
> DCOM
DCOM 代表 COM 功能的扩展,从而允许对远程计算机上的对象的访问。
该接口允许在企业、管理办公室和生产的应用程序之间进行标准化的数据交换。以前,访问过程数据的应用程序受限于通讯网络的访问协议。使用 OPC 标准软件接口,各个生产商的设备和应用程序就能以一致的方式连接起来。
OPC 客户端是访问过程数据、消息和 OPC 服务端归档历史数据的应用程序。访问需要通过 OPC 软件接口。
OPC 服务端是一个程序,它为不同制造商的应用程序提供一个标准的软件接口。OPC 服务端是在处理过程数据的应用程序、各种网络协议和用于访问这些数据的接口之间的中间层。
只有当设备的操作系统是基于 Windows COM 和 DCOM 技术时,才能使用 OPC 软件接口进行数据交换。 目前,Windows 2000、Windows XP、Windows 2003 Server 和 Windows VISTA 具有这些软件接口。
> XML
通过 DCOM 的通讯仅限于局域网。通过 XML 的数据交换使用 SOAP(简单对象访问协议)。SOAP 是独立于平台的、基于 XML 的协议。SOAP 可用于允许应用程序依靠 HTTP(超文本传送协议),通过 Internet 或在多机种计算机网络内相互进行通讯。
OPC 标准软件接口由 OPC 基金会定义。OPC 基金会是工业自动化领域中处于领先地位的各公司的联盟。WinCC 的 OPC 服务端支持下列规范。
OPC 数据访问 1.0、2.05a 和 3.0
OPC 历史数据访问 1.20
OPC 报警和事件 1.10
OPC XML 数据访问 1.01
OPC 数据访问 (OPC DA) 是针对管理过程数据的规范。 WinCC OPC DA 服务端符合 OPC DA 规范 1.0、2.05a 和 3.0。
OPC 历史数据访问 (OPC HDA) 是针对管理归档数据的规范。该规范是 OPC 数据访问规范的扩充。 WinCC V6.2 或更高版本的 WinCC OPC HDA 服务端符合 OPC HDA 规范 1.20。
OPC 报警和事件是发送过程报警和事件的补充规范。 WinCC V6.0 或更高版本的 WinCC OPC A&E 服务端符合 OPC A&E 规范 1.10。
OPC XML 标准支持通过 Internet 采用独立于平台的协议进行通讯。 客户端不再局限于 Windows 环境 (DCOM)。 其它操作系统(如 LINUX)可以使用 HTTP 协议和 SOAP 接口在 Internet 上监视和交换 OPC 数据。
要使用 WinCC OPC HDA、WinCC-OPC-XML-DA 服务器和 WinCC OPC A&E 服务器,必须购买Connectivity Pack“连通性软件包”授权。 “连通性软件包” 授权必须安装在用作 WinCC OPC HDA 服务器、WinCC OPC XML DA 服务器或 WinCC OPC A&E 服务器的 WinCC 服务器上。
2 在Excel中通过OPC DA访问本地WinCC
WinCC OPC DA 服务器为其它应用程序提供 WinCC 项目的实时数据。 应用程序能够在同一台计算机上运行或在已联网的远程计算机上运行。 以这种方法,将WinCC 变量的实时数据提供给 Microsoft Excel。
在Microsoft Excel 中用VBA脚本语言建立OPC 客户端,并通过OPC接口读取WinCC中的数据,并将修改的数据写入WinCC。通过OPC接口,Microsoft Excel作为OPC 客户端发起通讯并发送读/写请求到OPC服务器,OPC服务器执行这些读/写请求。对于WinCC OPC DA 服务器功能,需要将WinCC项目运行系统激活即可。
为了能够运行Excel中的VBA宏脚本,首先需要调整安全性设置。如图1在“工具->宏->安全性”中,将Excel的安全级别设置为“中”。

图1 安全性设置
打开文件excel_opc .xls,在“安全警告”中选择“启用宏”。

图2启用宏
在A1单元格输入运行WinCC的计算机名称。A3/A4单元格输入WinCC中变量的名称。点击按钮“启动 WinCC OPC”,对应WinCC变量的当前值即可读入到Excel单元格中。直接在B3/B4单元格中修改数值,对应WinCC中的变量值也会随之修改。点击按钮“停止 WinCC OPC”,停止Excel与WinCC的OPC数据访问。
以下为Microsoft Excel 作为客户端的配置说明。
在Excel中创建一个接口,在VisualBasic 编辑器中的“工具->引用”中,选中“Siemens OPC DA Automation 2.0”组件,使VisualBasic能够识别OPC对象。

图3 OPC引用组件
创建所需的所有对象,如:“MyOPCGroup”对象
Dim: 创建一个变量
WithEvents: 这个对象可以提供事件(如 DataChange)
MyOPCGroup: 对象名
As OPCGroup: 变量类型


图4
Sub StartClient() ’Microsoft Excel建立与OPC服务器的连接;
Set MyOPCServer = New OpcServer ’为“MyOPCServer”对象分配内存;
 MyOPCServer.Connect ServerName, NodeName
ServerName :WinCC OPC DA 服务器的名称为 "OPCServer.WinCC"
NodeName:激活WinCC运行系统的计算机名称
Set MyOPCGroupColl = MyOPCServer.OPCGroups
Microsoft Excel与OPC服务器的连接一旦建立,OPC组即被创建。这个通过集合对象来实现;
Set MyOPCGroup = MyOPCGroupColl.Add(GroupName)
创建的组通过“MyOPCGroup”变量来寻址。设置MyOPCGroup.IsSubscribed = True,以便OPC组能够提供DataChange等事件。
Set MyOPCItemColl = MyOPCGroup.OPCItems ’创建OPC项
MyOPCItemColl.AddItems 2, ItemIDs, ClientHandles, ServerHandles, Errors
ItemIDs 存储在单元格A3/A4中,把指定的ItemIDs 传送给集合对象"MyOPCItemColl.AddItems"
Private Sub MyOPCGroup_DataChange()
在Microsoft Excel中,调用如下用于OPC组事件处理的程序,它是OPC服务器的DataChange 事件,DataChange()这个事件处理程序提供了许多参数,如ItemValue(OPC项的值),客户端句柄等。通过DataChange事件,当OPC项的值变化时,数据会自动发送。OPC项的当前值显示在单元格B3/B4中。读出值的质量代码和时间戳显示在C/D列单元格中。
Private Sub worksheet_change()
如果在Microsoft Excel的单元格B3/B4中输入一个值,通过函数MyOPCGroup.SyncWrite将OPC项写入到WinCC,写入值和服务器句柄以参数形式传递给此函数。
Sub StopClient()
最后,断开与OPC服务器的连接。
3 在Excel中通过OPC DA远程访问WinCC
可以通过DCOM从OPC客户端远程访问OPC服务器WinCC OPC DA。但在A1单元格需要输入的是远程激活WinCC运行系统的计算机名称。

图5在Excel中通过OPC DA远程访问WinCC
由于远程OPC的使用是作为一个DCOM在使用,所以OPC客户端可以在网络上任何一台计算机运行,但是必须要配置DCOM的访问权限。一个简单的方法就是,在服务器与客户端都使用相同的用户名与密码登录。如果想配置DCOM,请参考DCOM配置的相关资料及下载中心文档:A0265 如何配置OPC DCOM。
WinCC在安装时提供了OPC的客户端控件: Siemens OPC DAAutomation 2.0( SOPCDAAuto.dll),这个控件就是在VBA中引用到的控件。如果运行Excel的计算机上没有安装WinCC,可以使用批处理文件注册dll文件。将整个文件夹 \Reg拷贝到C:盘下,双击reg opc即可。

步骤:
1、用第三方的小工具如KEPSERVER中的OPC CLIENT测试你的OPC服务器数据是否稳定
2、检查OPC服务器DCOM设置
3、检查你当前装WINCC6.2的的机器的DCOM设置(OPCEnum)
4、机器用户名、WORKGROUP最好一样
5、有时操作系统不一样也会有些问题,例如共享和访问权限等设置
6、关闭防火墙和杀毒软件。

如何将200系列PLC的内存数据记录保存到EXCEL中求答案
答:安装PCACCESS,安装完了之后会有一个excel的addin(OPCS7200ExcelAddin.xla),在pcaccess的安装目录下,倒入这个addin,就可以在EXCEL中读到PLC的数据了。保存数据的话,可以写一些vb脚本,这个就简单了,定时将读到的数据,写到单元格中即可。

在电脑上模拟一个opc环境需要哪些东西
答:OPC客户端可以通过访问OPC服务器获得设备数据 OPC客户端可以用各种程序编写,比如VB、VC、Excel里VBA等,各种上位机软件都有OPC通道驱动,可以作为OPC客户端访问OPC服务器以获得设备数据,OPC客户端还可以通过以太网访问远程电脑上的OPC服务器,不过要设置DCOM权限以及防火墙等。

excel里面group怎么使用
答:2、首先选中3到9行整行,只要框选第3行到第9行的行标题即可选中目标区域。3、单击菜单栏中的数据命令,在分级显示模块中找到创建组命令,单击创建组命令,如图所示。4、将3到17行的数据创建成一个组,如图所示,此时通过行分级处理将行系列分成了三个级别。5、列分组方法类似,首先选中需要创建组的...

wincc通过opc远程读取sql数据库
答:1、首先wincc通过opc远程读取sql数据库使用OPC访问WINCC的服务器。2、其次也直接对WINCC的数据进行更新就好了。3、最后因为涉及到WinCC数据库表的结构不同的问题,需与数据库建立连接。

...server数据库)使用组态王通过OPC读取然后将数据写入server,请高手...
答:寄存器会自动列出,按照实际选择。数据类型按实际选择。4.组态王创建了与opc连接的变量后,组态王就可以对变量进行操作了,你就可以把变量通过组态王命令语言写进数据库了。5.数据库操作得先创建记录体。6.说太多如果没有基础也很难搞懂,组态王有很详细的帮助,多看手册会大有帮助。

excel是什么意思
答:在1993年,作为MicrosoftOffice的组件发布了5.0版之后,Excel就开始成为所适用操作平台上的电子制表软件的霸主。在Excel中,函数实际上是一个预先定义的特定计算公式。按照这个特定的计算公式对一个或多个参数进行计算,并得出一个或多个计算结果,叫做函数值。使用这些函数不仅可以完成许多复杂的计算,而且还...

Excel2010新特性介绍 EXCEL2010有哪些新功能
答:采用新方法协作使用工作簿共同创作工作簿改进功能Excel Services辅助功能检查器改进的语言工具采用新方法扩展工作簿改进的可编程功能支持高性能计算在正确的时间访问正确的工具只有在您根据需要找到新增及改进功能时,这些功能才有助于您提高工作效率。与其他 Microsoft Office 2010 程序类似,Excel 2010 也包含 Microsoft ...

如何在C++中实现OPC访问
答:OPC的文档网上很多,我在这里要介绍的主题是使用C++通过自动化接口来访问OPC Server,写这篇文章的目的是我在网上没有搜索到这方面的文档,如果我有这方面的需要,我想在网上一定也有其他朋友有这个需要,希望能对这些朋友有一些帮助。使用C++来访问OPC Server, 相对于使用自定义接口来说,自动化接口要简单...

如何从PLC采集信号变成EXCEL表格数据
答:常用技术路线如下:excel通过vba进行编程,与PLC通信 高级语言编写程序采集数据后写入excel 常用通信方式:OPC/通信组件(dll)

microsoft excel 工作表 使用方法
答:经过这样的设置以后,上述单元格中的内容不再显示出来,就是使用Excel的透明功能也不能让其现形。提示:在“保护”标签下,请不要清除“锁定”前面复选框中的“∨”号,这样可以防止别人删除你隐藏起来的数据。八、让中、英文输入法智能化地出现 在编辑表格时,有的单元格中要输入英文,有的单元格中...