Citect变量专题.docx
《Citect变量专题.docx》由会员分享,可在线阅读,更多相关《Citect变量专题.docx(28页珍藏版)》请在冰豆网上搜索。
Citect变量专题
VCQ1 Citect数值输入的两种方法?
1.用键盘输入数值,见下图的文本属性定义,Temperature为变量名,小数点也要使用#代替
运行后的效果如下图,鼠标放在文本框中,并用键盘输入“234”+回车即可
2.弹出软键盘,见下图的文本属性定义,用到的函数为FormNumPad(Title,Input,Mode)
运行后会弹出如下图一样的软键盘,如果需要小数点按钮,需要在FormNumPad的Mode值为16
VCQ2 怎样在Citect的按钮中实现脉冲命令?
按钮的属性中 输入<=>点击 up中写动作:
变量标签=0;down中写动作:
变量标签=1
VCQ3 Citect变量标签的原始刻度和工程刻度是什么意思?
原始刻度是PLC或者外部设备关于该变量的的一个初始量程,工程刻度是Citect软件上需要转化的量程,原始刻度和工程刻度是成线性比例的关系。
如果原始零和工程零刻度一致,原始满和工程满刻度一致,那么此变量的数值不进行转换。
VCQ4 局部标签和磁盘虚拟变量标签的区别?
局部标签和磁盘虚拟变量都是citect内部点,不计算点数。
但是局部标签不支持网络传递,磁盘虚拟变量标签支持网络传递。
补充:
磁盘虚拟IO设备可以通过走快速通信向导建立--选择磁盘虚拟设备--选择citect通用协议,建立变量的时候地址是I1,I2,I3....(INT类型的变量),R1,R2,R3...(Real类型的变量),D1,D2,D3...(Digital类型的变量)
VCQ5 Citect的变量能否导出到一个表格中进行修改?
Citect的变量不需要导出,每个工程自带了一个变量表可以直接进行修改
1,在每个工程的文件夹中有一个的文件,此文件使用excel表打开,打开以后可以进行修改变量名称,地址,IO设备等信息
2,修改excel表格的宏安全性:
在excel表的工具菜单--宏--安全性--低
3,使用宏文件保存文件:
宏文件在Citect的文件安装路径下面 programfile\schneiderelectric\vijeocitect\bin文件夹中文件就是宏文件,双击这个文件,然后点击添加宏即可
VCQ6 为什么用Citect的Fastlinx(speedlink)导入UnityPro的变量标签时,AO和DO变量不能导入到Citect中呢?
因为Citect中的Modnet协议的变量只可以定义成以0,1,3,4开头的变量,也就意味着可以导入%M,%I,%IW,%MW的变量,关于%Q的变量是不能导入的,需要转换成%M或%MW,对于的SpeedLink同理。
VCQ7 怎样在Excel库中删除重复定义的变量标签,报警变量?
可以通过编辑Excel表的高级过滤工具来实现变量的筛选(比如等等)
打开库文件。
选择Datamenu|Filter|AdvancedFilter.选择”Filterthelist,in-place”,
并且在”Uniquerecordsonly”前打勾.设置表格的范围A:
A(变量名字所包含的范围)
这时Excel将隐藏那些重复的记录,复制粘贴记录到另一个Excel中,重复的记录
不会被移动.在原始的Excel中,选择Datamenu|Filter|ShowAlltodisplayallrows
Again
除了第一行以外删除原始表格中的记录,在把另一个表格中的数据粘贴回来.
用宏进行保存,到citect工程编辑器|文件|打包整理你的工程
VCQ8 Citect中怎样实现字中取位?
可以在变量表中直接建立,地址是这样的格式,不过这样设置需要占用16个点;如果为了控制点数需要字中取位,那么就不能在变量表中直接建立,需要使用bitand函数编写脚本将每一位“与”出来实现字中位
VCQ9 Unity中time类型的变量怎样在上位机中显示和修改?
?
需要在Unity软件中使用Time_TO_Word把time类型的变量转换成%MW类型的变量才可以在Citect上使用
VCQ10 Citect中Modnet协议中变量标签的地址能写成拓扑地址么(比如I地址)?
不能,需要将拓扑地址在plc中赋值给相应的%M或者%MW的连续地址,才可以定义在citect的变量标签中
VCQ11 Citect的modbusmodnet通信协议下的变量地址的定义?
[font= arial]1[font= arial],变量地址定义:
0开头地址--%M
1开头地址--%I
3开头地址--%IW
4开头地址--%MW
比如%M100-----对应的地址是000100
%MW100---对应的地址是400100
标准6位地址
2,字中取位:
在citect中可以写成
对应%MW100:
X15---%MW100:
0
这个是在quantumplc中测试过了,具体在其他plc中可以自行测试一下
3,浮点和双字的定义:
float和Dint就是双字,32位,定义的时候跳位定义即可,比如400100
下一个400102
再下一个400104
或者1,3,5……这样定义
另外:
在定义双字的时候需要添加一个配置文件的参数
citect管理器--工具--配置文件
[General]CheckAddressBoundary=0
4,拓扑地址的定义:
PLC的拓扑地址在citect上不能直接使用,需要在plc中将拓扑地址赋值给中间变量%MW,%M,然后才可以在citect上使用
[font= arial]
VCQ12 Citect和OPC通讯,下位为第三方PLC,如何定义Citect的变量地址?
用PLC变量的变量名来定义Citect变量的地址。
VCQ13 Citect中怎样定义变量的数组类型?
在变量标签的地址中输入“400100[20]”,用中括号将元素的个数扩起来
VCQ14 Citect中怎样实现变量的读写调试?
需要用到Tagdebug()函数
创建一个按钮,并在按钮的“输入(鼠标)”内输入Tagdebug()函数即可。
运行后的效果见下图,可以在下拉菜单中选择需要调试的变量,在下面添加变量值进行读写的调试
VijeoCitect分辨率和屏幕系列问题
一,上位软件建立工程的时候有一些小细节,比如全屏,想要使用VijeoCitect达到全屏的效果,有以下两种情况(同样适应于web方式显示):
1,画面属性中的分辨率=显示器的分辨率 需要在配置文件中添加两个参数
任意窗口-工具菜单(Tools)-配置文件(ComputerSetupEditor)
Section:
Animator
Parameter:
FullScreen
Value:
1
Section:
Page
Parameter:
DynamicSizing
Value:
0
2,画面属性中的分辨率<>显示器的分辨率需要在配置文件中添加两个参数
Section:
Page
Parameter:
MaintainAspectRatio
Value:
0
Section:
Page
Parameter:
DynamicSizing
Value:
1
Section:
Animator
Parameter:
FullScreen
Value:
1
二,VijeoCitect还可以实现双屏显示的功能,首先在将windows桌面扩展到2号监视画面上,然后添加一些配置文件的参数
1,XP风格的模板
[Page]
DynamicSizing=0
MaximiseOnCreation=0
[MultiMonitors]
Monitors=2
ScreenWidth=1024(屏幕分辨率的长度)
[Animator]
FullScreen=0
2,XP风格或者其他风格的模板
[Page]
DynamicSizing=0
MaximiseOnCreation=0
[Client]
StartupCode=WinNewAt("yourstartuppagename",1024,0)
[Animator]
FullScreen=0
双屏会出现上下和左右的滚动条,下面两个参数是屏蔽这两个滚动条的(适用于7.1版本以上软件):
[Page]
AllowHScrollBar=0
AllowVScrollBar=0
FAQ集锦第三期:
精灵和超级精灵专题
VCQ1 Citect的超级精灵无法弹出,可能是什么原因?
1,弹出超级精灵必须要使用精灵来调用,
2,并且在精灵上绑定超级精灵才可以(精灵页面――编辑――绑定超级精灵);
弹出普通页面可以直接在页面上做按钮弹出。
VCQ2 精灵调用超级精灵的函数是什么?
可以使用asswin(),asspopup()
VCQ3 Citect精灵需要传递超过8个变量给超级精灵,怎样设置?
正常Asspopup()或者Asswin()函数只可以传递8个变量给超级精灵,如果超过8个变量就需要使用assvartags()函数,每个函数可以传递8个变量,可以重叠使用,比如传递16个变量就使用两个assvartags()函数,最后在使用asspopup()弹出超级精灵窗口即可例如:
AssVarTags(-2,0,"PV123","SP123","OP123","PV124","SP124","OP124","PV125","SP125");
AssVarTags(-2,8,"OP125","PV126","SP126","OP126");
Asspopup("!
MyGenie");
VCQ4 按钮的命令框中当字符超过255的时候会报错,怎么办?
多出现在精灵给超级精灵传递变量的对话框中,由于在命令框中可以添加的字符数是有限制的,如果客户要传递的变量过多,那么在命令框中就无法完全写的下(例如VCQ3中,如果变量名称过长就会出现这个问题),所以要把语句写在cicode文件中,然后调用function函数。
在编辑funciton函数的时候使用数组传递变量,可以达到精灵一样的功能。
例如:
FUNCTIONMOTOR_CALL(STRINGID)
AssVarTags(-2,0,"M"+ID+"MR","M"+ID+"MA","M"+ID+"MO","M"+ID+"MAL1","M"+ID+"MAL2","M"+ID+"MAL3","M"+ID+"MAL4","M"+ID+"MAL5");
AssVarTags(-2,8,"M"+ID+"MAL6","M"+ID+"MAL7","M"+ID+"MAL8","M"+ID+"MAL9","M"+ID+"MAL10","M"+ID+"MAL11","M"+ID+"MAL12","M"+ID+"MAL13");
AssPopUp("controlpanel");
WinTitle(ID+"电机启动菜单");
END
VCQ5 Citect的超级精灵的标题栏的修改?
可以在精灵中使用Wintitle函数来设置弹出的超级精灵的标题栏,具体用法wintitle("%Title_name%")。
VCQ6 Citect使用普通页面或者超级精灵制作的弹出式页面在工程管理器中为什么看不到,这些页面是以感叹号开头命名的?
由于这些页面命名是以感叹号开头的,这样的页面是系统页面,默认无法看到,需要在工程编辑器--工具--选项--listsystempage前面打勾,才可以看到所有的系统页面
VCQ7 在Citect工程中制作的页面,精灵,超级精灵等能否导出使用到Citect的其他工程中去?
对于可以存储成库文件的object是可以导出使用到其他工程中的,Citect工程中的精灵,超级精灵,符号和模板是有库文件的,所以这四个功能可以导出到其他工程中使用。
精灵和超级精灵的库文件是后缀名.CTM,
符号库的文件后缀名是.CTL,
应广大Citect爱好者的要求,推出Citect常见问题第二期:
Citect软件对系统硬软件的兼容和经常遇到的编译错误,运行错误的应对办法。
如果您遇到了更多的编译错误或者运行问题,希望您回帖分享加以补充。
谢谢各位的支持。
VCQ1Citect软件对PC机硬件环境的兼容条件?
VCQ2什么操作系统支持安装VijeoCitectV7.0?
Windows2000
or
WindowsXPProfessionalwithServicePack2andServicePack3
or
WindowsServer2003StandardEdition
or
WindowsEmbeddedOperatingsystems(XP)
VCQ3什么操作系统支持安装VijeoCitectV7.1?
Windows2000
or
WindowsXPProfessionalwithServicePack2orServicePack3
or
WindowsServer2003StandardEdition
or
WindowsServer2008StandardEdition
or
WindowsEmbeddedOperatingsystems(XP)
VCQ4什么操作系统支持安装VijeoCitectV7.2?
WindowsXPProfessionalwithServicePack2orServicePack3-(32Bitand64Bit)
or
WindowsServer2003StandardEditionwithServicePack1-(32Bitand64Bit)
or
WindowsServer2008StandardEditionwithServicePack2-(32Bitand64Bit)
or
WindowsVistawithServicePack2(32Bitand64Bit)
or
Windows7(32Bitand64Bit)
VCQ5 Citect编译报错,"NoClustersdefined(没有定义集群)"怎么解决?
需要在工程编辑器--服务器--集群,需要在这里定义一个集群,然后所有的服务器链接到这个集群上
VCQ6 Citect编译报错,"AddressOnBadBoundary"怎么解决?
badboundary错误,这个错误是Citect默认的双字变量需要结尾同奇数,或者结尾同偶数,即末尾全为奇数如:
400001,400003,4000005,400101等或者末尾全为偶数如:
400002,400004,400006,400200。
如果不计较奇数偶数需要修改一个配置文件的参数[general]checkaddressboundary=0即可;
VCQ7 Citect编译报错,"OID溢出"怎么解决?
由于客户修改了工程文件夹中的variable.DBF文件中的OID字段,所以才会报错,将OID字段清空,然后重新打包编辑即可。
或者修改一个配置文件的参数也可以解决,[OID]Reset=1
VCQ8 Citect编译报错,"outofkerneltask(超出内核任务)"怎么解决?
需要修改一个ini参数[KERNEL]Task=较大的数值,每次至少增加50,最大是32767。
默认值是256
VCQ9 在Citect中当用到以CSV_为前缀的函数时,编译有错误,为什么?
因为如果在“新建工程”的对话框中的“模板风格”选择“中间”“标准”“底部”这三个模板的工程中不包含CSV_Include工程,所以以CSV_为前缀的函数都无法应用。
修改办法1.可以在“Citect工程编辑器”――系统――包含文件――“工程名称”处添加“CSV_Include”;2.新建工程――模板风格选择“XP_风格”即可。
VCQ10 Citect在运行的时候报“许可节点不能是任何服务器类型,请禁止所有服务器”错误,怎样修复?
编译没有错误,运行的时候碰到这个错误,可以设置一下“计算机设置向导”――定制设置――工程名称――服务器――无网络连接……――完成。
然后在运行工程即可。
VCQ11 Citect编译无错误,运行工程以后报错,然后停止运行,错误是.HST文件错误?
每次修改好趋势标签以后,都需要到默认的data路径下面将已经以前生产的趋势文件删除,然后在重新编译运行,否则就会报错
VCQ12 运行工程以后,报“软件保护失败”错误的解决方法?
出现这个错误的主要原因是因为加密狗的角色和电脑工程的角色设置的不匹配造成的
1、辨别加密狗的角色
可以查看citect管理器(citectexplorer)――帮助――citect更新key
可以看到这个狗的信息是citectSCADA的狗,注意vijeocitect和citectscada的狗不能混用
也就是说vijeo的狗需要安装vijeo的软件,citectSCADA的狗需要安装citectSCADA的软件
如果客户的狗是服务器版本的,那么fulllicenses处应该是1
如果客户的狗是客户端版本的,那么displayclient或者managerclient(只读客户端)处是1
下图狗是测试狗,不用追究他的参数
2、检查工程的角色
-如果狗是服务器的狗,这台机器要做服务器,那么工程中的IP地址就需要和本台机器的网卡地址一致
比如本台机器的网卡地址是,那么在citect的工程编辑器――服务器菜单――网络地址也需要设置成192.168.0.1
设置好了以后需要编译工程,走计算机设置向导(工具菜单――计算机设置向导)
-如果狗是客户端的狗,这台机器要做客户端,那么工程中的IP地址就需要指向服务器的IP,也就是说工程中的IP地址不能和本机的网卡地址一致
比如服务器的网卡IP是,客户端机器的网卡地址是,那么在客户端上的工程中的IP地址需要是,也就是说所有工程中的IP都需要指向服务器的IP
然后走计算机设置向导,注意,fulllicense处到底是否要打勾,需要看狗中fulllicense是否为1。
如果狗中的fulllicense处为0,那么下图中的fulllicense处不能打勾
设置好了角色,在重新运行工程就不会在报“软件保护失败”的错误了
最后一点
需要注意的是如果没有狗,那么在计算机设置向导不能选择TCPIP模式
选择了TCPIP模式就必须要插狗。
因为此处的TCPIP是值多台上位机之间的通信,并不是指citect和plc之间的通信。
对于Citect使用者经常会提出的问题,我做了一些总结,今天推出第一期做一个试点,以后还会推出更多的问与答来让广大的Citect爱好者更好,更快的了解和使用Citect软件
VCQ1 Citect单机版(标准版)和服务器版本(完整版)的区别?
单机版和完整版相同的地方是包含了所有的驱动协议,但是不同的是以下三个方面:
1,单机版不支持升级到完整版;
2,单机版不支持网络架构
3,单机版不能做数据源,比如:
不能做OPCserver,不能将数据分享给其他软件等等
VCQ2 Citect的开发是否需要授权?
Citect的授权不分开发版和运行版。
Citect的开发不需要授权。
但是如果没有加密狗,
-连接PLC测试通信可以运行15分钟,50000realIO点数限制。
-10小时的单独运行(无外部静态点或者只有一个外部动态点)。
如果连接PLC需要长时间通信那么需要插授权狗,而且工程的点数要控制在购买的授权狗点数的范围内。
VCQ3 Citect完全许可(完整版)的授权狗问题?
服务器的狗即可以插在服务器上,也可以插在客户端上;但是客户端的狗只可以插在客户端的机器上使用。
VCQ4 Citect授权狗版本和Citect软件版本的兼容问题?
授权狗的版本只能平级或者向下兼容软件的版本,也就是说比如7.1版本的授权狗可以使用在7.1版本的软件上或者7.1以下版本的软件上(包括7.0,6.1等等的软件上)
-如果5.3to5.31不需要升级狗版本,安装补丁不需要升级狗版本
VCQ5 Citect服务器的狗用在客户端上怎么设置?
需要在客户端的上位机Citect软件中设置,Citect工程管理器――工具菜单――“计算机设置向导”--定制设置――客户端角色,fulllicense前面打勾--……--完成即可。
VCQ6 Citect怎样查看工程中已经使用了的点数个数?
使用点数查看可以到内核中查看
首先,连接PLC;
然后,在工程管理器――工具――计算机设置向导――定制设置-…-在菜单中栏显示Kernel选项打勾;
最后,运行Citect工程,在Windows任务栏中右键点击Citect的Runtime图标进入kernel--view菜单--general中查看。
VCQ7 Citect的授权狗的信息查看和真伪识别?
授权狗的信息可以在Citect工程管理器――帮助――Citect更新Key中查看到。
授权狗的真伪识别可以在网站上查询,输入狗的授权号码就可以查询到狗的信息。
VCQ8 VijeoCitect自带的OFS还需要另外授权么?
只要购买VijeoCitect软件的加密狗即可,不需要对OFS另外授权。
如果没有加密狗,OFS可以运行72个小时。
CitectSCADA软件没有OFS。
VCQ9 Citect的服务器和客户端选择的授权点数不同,是否可以?
可以不同,但是服务器的点数必须大于或者等于客户端的点数。
如果客户端的点数小于服务器的点数,那么服务器上的程序不能直接使用到客户端上,需要进行修改,将点数降低到定购点数的范围内才可以使用到客户端上。
VCQ10 怎样区分Citect的加密狗是服务器的还是客户端的?
Citect工程管理器--帮助菜单--Citect更新Key中可以查看到狗的信息。
Fulllicense是1就说明是服务器的狗,如果controlclient(控制客户端)