I have purchased a "Single Developer + Runtime Free" License. The use of this license is obvious when developing OPC based solution in something like Visual Studio because the developer workstation (where the application is compiled) contains the license and then the EXE can be distributed to multiple computers (royalty free).
Question 1: Am I correct in assuming that the distributed EXE does not need a copy of the license file with it because the fact that it was created with a valid license (as opposed to a trial version) is somehow embedded into the EXE during the compile?
Question 2: If the assumption of Question i is correct, how does this work for non-compiled application such as a PHP page? Since a PHP page is not compiled the fact that it was "developed" using a valid license can not be embedded into the code unless one needs to add a line to the source code to indicate the license ID. Can you please indicate what is necessary to run PHP pages, with EasyDAClient code, on computers other than the development workstation.
Question 3: Previously we were distributing our application (developed on a Windows 7 development workstation which has the license) to a Windows Server 2008 OS and everything seemed to work fine. Now we purchased a Windows Server 2012 OS and we seem to be having issues. Our application seems to get 'Null' as VTQ object from subscriptions and writes don't seem to generate errors but the write does not happen (i.e. the OP tag value remains the same). I tried a simple write from PHP instead (i.e. as opposed to a VS application) and got the following error:
exception 'com_exception' with message 'Source: OPCLabs.EasyDAClient.5.2 Description: Not allowed to run by the license. You might be using a trial license, and the version of the software you are using is obsolete. Obtain a recent version to resolve this problem. ' in C:\SPET\PubDisplay\test.php:6 Stack trace: #0 C:\SPET\PubDisplay\test.php(6): com->ReadItemValue('', 'ICONICS.Simulat...', 'INT00_SCCx_STD0...') #1 {main}
I used the following PHP code:
<?PHP
echo "The Value is: '" ;
try
{
$EasyDAClient = new COM("OPCLabs.EasyDAClient.5.2");
echo $EasyDAClient->ReadItemValue("", "ICONICS.SimulatorOPCDA.2", "INT00_SCCx_STD01x_M01");
}
catch (Exception $E)
{
echo $E;
}
echo "'";
?>
In our case the PHP page and the OPC Server are running on the same machine (i.e. the OPC requests are local as opposed to remote). Is this truly a license issue or could it be that Windows Server 2012 is blocking the EasyDAClient? If we need to make some Firewall Exception Rules can you please indicate for which files or point me to some documentation which outlines how to do this?