Quantcast
Viewing all 2516 articles
Browse latest View live

ControlLogix UDT arrays

I have a large array of UDTs that consist of a 20 member structure. How can I read the members of each element in the structure, in each array? I tried mapping the entire UDT array as well as the individual UDT members of the array; neither seemed to work, as I was unable to reference any of the UDT elements. I've resorted to defining each element of the UDT structure for each member of the array, which works for now, but will be cumbersome once I start using the hundreds of elements of the arrays, each with 20 data types

I'm new to iFIX if you can't tell; formal training isn't scheduled for months. The tutorials didn't go over this, so any help is appreciated!

IGS Silent install

Anyone know when the next IGS is due for release ?
The IGS v7.58 is not currently capable of performing a successful silent[unattended] install.
The case I created back mid 2012 said it is slated for a future release.
It is an outstanding issue for me and I am hoping the next release will resolve the issue.

Cimplicity OPS server, Matrikon, KEP

Good morning,
We have one PC(A) with an Cimplicity OPC server. A second PC(B) equiped with Cimplicity OPC server, Matrikon OPC server, Matrikon Trender, Matrikon Historian and KEP.
We can read the real data from B with an OPC client, this is meaning that the OPC server of B is working and that we can communicate.
When we start the B, the Matrikon Archive task is taking 99% of the ressources and we are obliged to kill the process to get access to the PC. The Cimplicity server local to B is started but there is no real time values. But, after a few hours it is starting for an unknown reason.
The KEP is supposed to get the data from A or B and being the server for the Matrikon client but it is not always working.
In the Event Logger, some processes are not starting and we have attempts to have remote access that are not explained.
We are tryning to understand what is happening but for the moment I have no idea of the origin of the problem.
If someone can help on this problem?
Thanks
Phililppe

How to acknowledge all alarms automatically?

Hi,

I've developed a picture which contains the Alarm Summary OCX. In this OCX, my customer wants to see only the alarms which are still in fault and he doesn't want to use any kind of acknowledgement system.

What's the best way to acknowledge all alarms automatically, all the time? I tried to call the "AckAllAlarms" method of the AlarmSummary component and it seems to work so I assume I can call it periodically but it looks like a ****ty solution to me :mad:

Thanks for your answer in advance ^_^

Setting Modbus Address for a GE EPM 5100

I'm working with a client who uses the GE EPM 5100 meter (http://www.gedigitalenergy.com/multi...og/epm5100.htm), which communicates as a Modbus RTU slave. The Modbus address of the meter (which can be from 33 to 247) is set by three small pot switches mounted inside the meter case.

(Page 60 of the manual, Section 4.5.1, at http://www.gedigitalenergy.com/produ...ek-113391a.pdf)

I'm going to have to direct someone over the phone to find them and turn them to properly set the address, but the product manual doesn't make it clear exactly where those switches are mounted, and I heard that at first look, the on-site contact wasn't able to find them.

Has anyone worked with a GE EPM 5100 meter, and if so, do you recall where exactly those switches were (so I can properly direct my contact over the phone)?

Thanks!

Cimplicity Project Upgrade from 6.1 to 8.2

I am trying to upgrade project built on Cimplicity Ver 6.1 SP4, to Cimplicity 8.2. Upgrade fails with following error Log

3/19/2013 10:34:27 AM Failure 12260 CfgCab VerifyProductOpt 5348
Missing IC646TAP000 required option(s).
Error of type: COR_PRJ_ERR, Code: 269041

3/19/2013 10:34:27 AM Failure 12260 CfgCab VerifyProductOpt 5348
Missing NTDEMO required option(s).
Error of type: COR_PRJ_ERR, Code: 269041

1st error might be related to Applicom driver option used in the original project. Whats the cause of second error and how to get rid of these errors (1st&2nd) and open the project ? Any link to download Cimplicity 6.1?

iFIX object default color animation

How can you have an object like a rectangle have a default color animation without using a data source?
Thx in advance.

1280x1024

Does any one know how to set the screen resolution on a screen to 1280x1024. I am working from a lap top and when I go set the width and height on a screen and the select ok, it actually gets smaller and does not fill up the screen. I know my laptops out put is in pixels and the Cim screen is in pts but when I try to increase the screen to fill the monitor space , it doesnt work.
Any ideas ?

EM Triggered Script Problem on Win7

Hi,

I have a problem about "run a script" via Event Manager. I'm pretty sure that the problem is due to Win7 OS. But I don't know exactly how i can fix it and also i'm not sure which security parameter(s) i have to change.

Basically I want to open an excel file with a basic script via event manager. Script is time-based and it must run every hour.
When script triggered , I'm checking the script using BCE User Interface and I see the error at line X ( The code on line X is obj.Workbooks.Open filename:="C:\Program Files\Proficy\Proficy CIMPLICITY\projects\BUSEB\report\Hr_Rep.xlsm"
). But, when i run code manually there is no problem. Problem occurs only when script is triggered from event manager.
I also changed some parameters on windows 7.
1-control panel-->user acconts-->change user account control--> Set to "never notify"
2-control panel-->Admisitrative Services-->Services-->Interactive Services--> set to "Disable"

As I said before, the problem is sourced from Win7 Operating System. So, maybe anyone knows which security parameters should i change on OS?


The code is:

Sub Main()

Dim obj As Object
Dim iDay,iMonth,iYear,iHour,iRepStat,iRepType As Integer
Dim bPagePrint As Boolean
Dim strPrinterName As String
Dim tReal As Double

bPagePrint = PointGet("VIR.B0[0]")
strPrinterName =PointGet("vir.rep_printer")

iDay=datepart("d",(Date))
iMonth=datepart("m",(Date))
iYear=year(Date)
iHour=hour(now)

Call CheckFileIsOpen 'Check excel file is open?

Set obj=createobject("excel.application")

obj.Workbooks.Open filename:="C:\Program Files\Proficy\Proficy CIMPLICITY\projects\BUSEB\report\Hr_Rep.xlsm"
obj.application.displayalerts=false
obj.visible=false
obj.activeworkbook.sheets("set").select
obj.ActiveSheet.Range("A1")=iYear
obj.ActiveSheet.Range("A2")=iMonth
obj.ActiveSheet.Range("A3")=iDay
obj.ActiveSheet.Range("A4")=iHour
obj.ActiveSheet.Range("C2")=bPagePrint
obj.ActiveSheet.Range("C1")=strPrinterName

obj.application.run "DB2Excel"
sleep(100)
obj.application.run "Excel2Table"
sleep(100)
obj.application.run "Table2File"

obj.ActiveWorkbook.Close savechanges:=true 'true ???

obj.quit

PointSet "master.i0[10]",0
PointSet "master.i0[11]",0

'///////////////////////////////////////////////////////////
For i=0 To 63 Step 1
tReal = PointGet("MASTER.REP0[" &i &"]")
PointSet "VIR.HR_REP0[" &i &"]",tReal

tReal = PointGet("MASTER.REP1[" &i &"]")
PointSet "VIR.HR_REP1[" &i &"]",tReal

tReal = PointGet("MASTER.REP2[" &i &"]")
PointSet "VIR.HR_REP2[" &i &"]",tReal

'tReal = PointGet("MASTER.REP3[" &i &"]")
'PointSet "VIR.HR_REP3[" &i &"]",tReal
Next
'//////////////////////////////////////////////////////////
End Sub

Sub CheckFileIsOpen()

Dim xl As Object

On Error Resume Next
Set xl = GetObject(, "Excel.Application")
xl.Workbooks("Hr_Rep.xlsm").Activate

If Err.Number = 0 Then
Exit Sub
End If

If Err.Number <> 0 Then
xl.workbooks("Hr_Rep.xlsm").Close savechanges:=true
End If
End Sub


Any help would be greatly appreciated...

Adding a device to Cimplicity in Dynamic Mode?

We are currently doing some testing for an project opportunity and having trouble with adding a device to Cimplicity in dynamic mode.

We are able to add device but the points are shown as invalid, when we try and add a point manually we get error message "Dynamic mode requires that the device be configured in the runtime data."

Thx in advance
Paul M

Cimplicity OPC Server

Hi,

Can anyone help me out with a manual/instruction for DCOM settings and other settings for CIMPLICITY HMI OPC Server on Windows 7.

Thanks in advance.

HowTo: Trigger an alarm when point doesn't change for a certain time

Hi guys!
I need to trigger an alarm when some point (MyPoint) doesn't update for a certain time (f.e. 15 mins).
Does anyone have an idea how to do this?

UPD: Only one solution I can see is to create a timed event where I should put a script to compare MyPoint.TIMESTAMP with $PROJECT.DATE.SECOND.TIMESTAMP
I think there should be an easier way to do that

PS I've tried to search on this forum but I still got not any other solution -(

iFix 5.1 Enhanced failover - Data Synchronisation

As per the following contents from ScadaSync.ini file, whether iFix synchs all file in PDB folder, if we remove the exclusions extensions? we have an additional requirement to synch ALM folder contents between primary and secondary scada server inorder to display alarm history. To do that, whether I can mentioned FIXDIR=ALMPATH too in the ini file ?

[SyncManager]
; EnableSIMFailureButtons=0
EnablePDBSyncButtons=1
[Transport0]
[Transport1]
[Transport2]
[ScadaRoleMgr]
; default: 60 seconds
ClientConnectionsCheckInterval=60
DelayAutomaticAfterManualSwitch=5
[FileSync0]
FIXDIR=PDBPATH
Inclusion="*.*"
Exclusion="*.TMP;*.EVS;~*.*;*.foo"
IdleTime=5000
Recursive=0

Login Box Status

Hi,

Is there a way to determine if the user login dialog box is open, for use in a vb script?

Thanks,

HMI DOWN tracking from PLC

hi all

i m just curious about how to track " HMI down" status from PLC

i have CRU320 with redundant Ethernet module connecting to cimplicity 8.2 server and viewer through D-LINK switch

first i thought of doing with ethernet communication ok bit but as i have a d-link switch in my setup ,so PLC will keep on thinking that its have a communication

so i made a small script like rolling counter but the problem in the rolling counter its keep on getting overflow alarm

so is there any other way i can achieve this one

SCADA/IGS not poling from ControlLogix

Hello, I'm attempting to restore communications on a SCADA running iFix 5.50.10179 with IGS 7.58 trying to talk to a ControlLogix L63 v20.12 over Ethernet. It looks as though IGS has been configured with 5 separate channels all talking to the same IP, each channel polling different sets of UDT tags in the processor. I believe this has been done to improve poling rates since there are around 9,600 total tags.

It seems as though IGS is sort of talking to the processor as I've set up a static tag under one of the channels. If I open up the Quick OPC Client, it will show a good value initially, however Quality will soon turn to Bad (Not Connected).

Each channel in IGS is set up to talk to "<10.10.10.10>,1,1" (processor is in slot#1), protocol option is set to Physical Non-Blocking, and port number 44818. I can ping the processor's IP address from the SCADA.

It looks like there are around 100 tags that throw an error because they do not exist in the PLC, and I'm in the middle of removing them from the database now. I'm not sure if this would cause the IGS driver to stop talking.

Are there any other steps I can take to determine why this isn't working? Any input would be much appreciated.

~Ryan

How to store iFix PDB tags values only when they change?

Hi,

I've got some analog values in my iFix PDB which change from time to time. Those are whole numbers so their minimum offset is 1.

I want to store a new value for those tags in Historian only when the tag value has moved. I tried to use "Unsolicited" collection but it doesn't work and I've read somewhere in the forum that it's not going to work with the iFix collector.

Then I enabled a collect compression with a 0,5 dead band and it seems to work but I find this solution very dirty... Is it the right way to do it?

Script for Database tables

Hello guys,

I am trying to write script to creat database table and change its properties in Cimplicity 8.1. I found the following property to configure one of the maintenance actions

myTable.DigitalMaintenancePointID = "SWITCH"
myTable.DigitalMaintenanceState = cimLow

Can anybody help me on the following:
1. Is there any property to disable this option on table property?
2. I tried myTable.DigitalMaintenanceState = cimLow but it doesn't work.

Thanks

Granularity of persistence on a persistent workflow

Persistence is at the sub-process level meaning a sub-process that has been completed will not re-start. However any sub-process that was incomplete at the time of re-start will be run from the beginning.

Here is the explanation from our local expert:

A persistent workflow can be stopped and restarted. All workflows are stopped when the server is stopped; persistent workflows are restartable when the server is restarted. A workflow definition can be marked as "Automatically restart instances of this workflow on server start" (default is false). These instances will be restarted during the Start phase of the Workflow Domain SP. Otherwise, instances will need to be manually restarted using the Workflow Instances display.

Workflow instances persist when a subprocess is completed. When a workflow instance is stopped, the current subprocess is canceled and the PostSubprocess, PostProcess, and Unload activities are executed. When the workflow instance is restarted, it will run through the Load, PreProcess, and PrSubprocess activities and then execute from the beginning of the subprocess following the last completed subprocess. Or, in other words, from the beginning of the subprocess that was in progress.

Search through scripts of multiple screens

I was wondering if it is possible to do a search for certain words in all the scripts of multiple screens (.cim files).

For example, I am trying to find out which screens/buttons are accessing or updating a specific table in my database. Searching for "my_table" using windows doesn't give me any results. The 'search contents of files' option is enabled in windows and I'm sure the table name is written in some files.

I suppose searching within the files is hard since opening the files with notepad shows that the data is compressed or so, which means the words in the script aren't stored as plain text words.

Still I am wondering if there is a possibility to search the scripts of multiple .cim files. Going through every screen and button is not really an option so I'm hoping there is some kind of trick or tool that can aid me. Any tips are greatly appreciated :)

EDIT:
I meant .cim files instead of .blc files.
Viewing all 2516 articles
Browse latest View live


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>