class
ICommunicationExtension.
ICommunicationExtension
Bases: object
Provides methods for communication-related settings and functions of a device.
get_communication_address
Retrieves the communication address of the controller.
The communication Address. This can be an IP Address, a nodename or fully qualified connection URI.
Examples:
192.168.2.25
MyController
etcp3://192.168.2.25
etcp3://10.128.154.12:1105,192.168.2.25
enodename3://10.128.154.12:1105,MyController
etcp3://[10.128.154.12:1217],192.168.2.25
enodename3://[10.128.154.12:1217],MyController
string
This example shows an example of getting the address.
from __future__ import print_function
def main():
if not projects.primary:
system.ui.error("No active project.")
return
project = projects.primary
# locating the controller named 'LMC'
controller = project.find('LMC', True)[0]
address = controller.get_communication_address()
print(address)
system.ui.info("Test complete")
main()
reboot_plc
Reboots the controller.
This example shows an example of rebooting the controller.
from __future__ import print_function
def perform_application_login(project):
app = project.active_application
onlineapp = online.create_online_application(app)
onlineapp.login(OnlineChangeOption.Try, True)
def main():
if not projects.primary:
system.ui.error("No active project.")
return
perform_application_login(project)
#find the controller named 'LMC' which is to be rebooted
controller = project.find('LMC', True)[0]
#reboot the controller
controller.reboot_plc()
system.ui.info("Test complete")
main()
reset_diagnosis_messages
Resets the diagnostic messages of the controller.
This example shows an example of resetting the diagnostic messages of a controller.
from __future__ import print_function
def perform_application_login(project):
app = project.active_application
onlineapp = online.create_online_application(app)
onlineapp.login(OnlineChangeOption.Try, True)
def main():
if not projects.primary:
system.ui.error("No active project.")
return
project = projects.primary
perform_application_login(project)
#find the controller which messages are to be acknowledged
controller = project.find('LMC', True)[0]
#acknowledge the diagnostic messages
controller.reset_diagnosis_messages()
system.ui.info("Test complete")
main()
stop_all_applications
Stops the applications of the controller.
This example shows an example of resetting the diagnostic messages of a controller.
from __future__ import print_function
def perform_application_login(project):
app = project.active_application
onlineapp = online.create_online_application(app)
onlineapp.login(OnlineChangeOption.Try, True)
def main():
if not projects.primary:
system.ui.error("No active project.")
return
project = projects.primary
perform_application_login(project)
#find the controller which the applications are to be stopped
controller = project.find('LMC', True)[0]
#stop all applications
controller.stop_all_applications()
system.ui.info("Test complete")
main()
execute_iec_echo_service_test
Execute the echo service that sends tests values for common data bytes that are to be returned with same values. This can be used for a smoke test. If any returned value differs from the expected value an exception is reported with the expected and actual value.
The service is probably not registered on calling the test. This can be done inside the application using: SE_IRS.Instances.g_ifIecServices.GetServiceByName('EchoTest').RegisterService();
ArgumentException -- Invalid Result: Expected={expectedValue}, Actual={actualValue}
ArgumentException -- Invalid UDInt: Expected={expectedValue}, Actual={actualValue}
ArgumentException -- Invalid DInt: Expected={expectedValue}, Actual={actualValue}
ArgumentException -- Invalid String: Expected={expectedValue}, Actual={actualValue}
ArgumentException -- Invalid Bytes: Position={i}, Expected={expectedValue[i]}, Actual={actualValue[i]}
set_communication_address
address
Sets the communication address of the controller. This can be an IP Address, a nodename or fully qualified connection URI.
address -- The communication address in one of the following notations:
192.168.2.25
MyController
etcp3://192.168.2.25
etcp3://10.128.154.12:1105,192.168.2.25
enodename3://10.128.154.12:1105,MyController
etcp3://[10.128.154.12:1217],192.168.2.25
enodename3://[10.128.154.12:1217],MyController
This example shows an example of setting an IP address.
from __future__ import print_function
def main():
if not projects.primary:
system.ui.error("No active project.")
return
project = projects.primary
#find the controller by the object name where address is to be set and read.
controller = project.find('LMC', True)[0]
#reboot the controller
controller.set_communication_address('192.168.2.25')
#read address back and show it.
print('get_communication_address:=' + controller.get_communication_address())
system.ui.info("Test complete")
main()
get_message_logger_as_xml
path
Uploads the latest message logger and saves it as an XML file to the specified path.
path (string) -- The path of the file where to export to. If omitted, the test result is returned as string. (This parameter is optional.)
The exported XML as string, or null if a filepath is given.
string